我搞不清这是怎么回事very simple snippet:
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
这正是它所说的:
self
在调用self.printme()
时没有定义。self
不是在Python中神奇地为您定义的;它只在一个名为self
的参数的方法中工作。如果有帮助的话,试着在整个程序中将单词self
替换为其他单词,比如foo
(因为self
作为标识符没有什么特别的)。如果打算在每次创建类的实例时运行函数,请尝试以下操作:
下面应该解释这个问题。也许你想试试这个?
名称
self
仅在显式声明名为self
的参数的方法内定义。它不是在类作用域中定义的。在类定义时,类作用域只执行一次。”调用“带有
A()
的类调用它的构造函数__init__()
。所以也许你真的想要这个:相关问题 更多 >
编程相关推荐