对象方向:python中的方法错误



我已经制作了一个带有一个接口的python程序。接收文件名和数值数据。当我创建操作文件名,目录等的方法时,它会返回错误。

我相信错误是对象方向。我该如何解决?

我已经将程序分为两个部分:一个用于解决我的问题(没有对象取向),另一个要接收用户数据。

错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:Python27liblib-tkTkinter.py", line 1541, in __call__
    return self.func(*args)
  File "teste.py", line 60, in verificaSenha
    if (Procura_nome(nome_arq) == 1):
NameError: global name 'Procura_nome' is not defined

完整的代码:https://pastebin.com/br6jacur

有问题的方法:

def Procura_nome(nome_arq):
    dir = Percorre_dir_entrada()
    arquivo = dir + dir[2] + nome_arq + + ".shp"
    os.path.isfile(nome_arq)
    try:
        with open(arquivo, 'r') as f:
            return 1
    except IOError:
        return 0

所有python方法类都必须具有自我参数为第一个参数,此参数也引用了您的类的实例,当您使用类中的类方法和属性时,您应该用自我引用它们。

您可能需要在文件中的所有方法类中添加自我。

您还需要在第三行上删除一个" "。

def Procura_nome(self, nome_arq):
    dir = self.Percorre_dir_entrada()
    arquivo = dir + dir[2] + nome_arq + ".shp"
    os.path.isfile(nome_arq)
    try:
        with open(arquivo, 'r') as f:
            return 1
    except IOError:
        return 0

您的percorre_dir_entrada和percorre_dir_saida函数在不同的文件上做完全相同的事情,您应该考虑执行一个通用版本,这些版本以param的形式以param的形式使用:

def Percorre_dir(self, file_name):
    achou = 0
    dirlist = os.listdir(".")
    for i in dirlist:
        filename = os.path.abspath(i)
        if((filename.find(file_name)) != -1):
            achou = 1
            return filename
    if(achou == 0):
        return 0

然后称其为:

Percorre_dir("Saida")
Percorre_dir("Entrada")

最新更新