面向对象:Python中的方法错误
我制作了一个Python程序,它有一个接收文件名和数字数据的接口。当我创建操作文件名、目录等的方法时,它会返回一个错误 我相信错误来自于对象定向。我怎样才能解决这个问题 我将程序分为两部分:一部分用于解决我的问题,无需面向对象,另一部分用于接收用户数据 错误:面向对象:Python中的方法错误,python,Python,我制作了一个Python程序,它有一个接收文件名和数字数据的接口。当我创建操作文件名、目录等的方法时,它会返回一个错误 我相信错误来自于对象定向。我怎样才能解决这个问题 我将程序分为两部分:一部分用于解决我的问题,无需面向对象,另一部分用于接收用户数据 错误: Exception in Tkinter callback Traceback (most recent call last): File "C:\Python27\lib\lib-tk\Tkinter.py", line 1541,
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.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
完整代码:
有问题的方法:
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方法类都必须将self param作为第一个参数,此参数引用类的实例,并且在类内使用类方法和属性时,应使用self引用它们 您可能需要将self添加到文件中的所有方法类中 您还需要删除第3行上的一个“+”
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函数在不同的文件上执行完全相同的操作,您应该考虑执行一个将文件名作为参数的通用版本,如下所示:
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")
Procura_nome应该是类的一部分吗?是的,所有方法都应该是@depperm类的一部分然后你需要self成为所有方法的第一个参数,比如Procura_nomeself,nome\u arq:@depperm如何引用该方法?self.Procura_nome_arq?是的,你也需要这样做