Python错误“未定义名称'自我'”是什么意思?
问题内容:
我不知道这个非常简单的代码片段出了什么问题:
class A(object):
def printme(self):
print "A"
self.printme()
a = A()
错误输出:
Traceback (most recent call last): File "prog.py", line 1, in
<module>
class A(object): File "prog.py", line 5, in A
self.printme() NameError: name 'self' is not defined
问题答案:
以下应解释该问题。也许您会想尝试一下?
class A(object):
def printme(self):
print "A"
a = A()
a.printme()
名称self
仅在显式声明名为的参数的方法内定义self
。它不是在类范围内定义的。
类范围在类定义时仅执行一次。用该类A()
的构造函数“调用”该类__init__()
。所以也许您实际上想要这样:
class A(object):
def __init__(self):
self.printme()
def printme(self):
print "A"
a = A()