所以,我在启动python时遇到了这个错误。你知道吗
def CheckMail(mail):
if re.match("[^@]+@[^@]+\.[^@]+" , mail):
correo = mail
else:
print "Ingrese el formato correcto para el correo: "
mail = raw_input()
CheckMail(mail)
当我调用函数时,它是真的没有问题,但是当我调用函数并转到else时,给我
NameError: global name 'CheckMail' is not defined
我确信错误是当我调用递归时,我不知道是什么导致了错误。你知道吗
谢谢!你知道吗
编辑:添加实际代码
函数位于类中:
我不知道你的应用程序是什么(也不知道班上其他同学长什么样)。看起来这需要是一个方法,
correo
是对象状态的一部分。如果是这样的话:方法的def应该是:
调用
obj.CheckMail(m)
时,它会传递一个对“self”的引用,以便类知道它正在处理哪个对象。你知道吗你的定义应该是:
我假设您在对象中存储
correo
是出于某种目的。你知道吗要从类中调用类方法,应该是:
这将调用CheckMail并将相同的对象传递到函数中。由于CheckMail不作为全局名称存在,因此引发了错误。但是有一个myclass.CheckMail功能。要调用该函数,需要使用self(或myclass的另一个obj)。你知道吗
如果这确实是您遇到的问题,我强烈建议您查看https://docs.python.org/2/tutorial/classes.html。这是一个非常好的简要概述类语法如何在python中工作。你知道吗
相关问题 更多 >
编程相关推荐