【发布时间】:2018-06-03 14:21:06
【问题描述】:
我试图在同一个类的另一个函数中调用一个函数中定义的变量,但 self 不起作用。
class Project():
def function1(self):
a='hello world,'
def function2(self):
b=self.a + ' I am alive'
Project1=Project()
print Project1.function1()
print Project1.function2()
python 说:Project instance has no attribute 'a'.
我不太清楚如何使用类。我没有使用__init__,因为我没有什么可放的,即使我正式不需要它,是否有办法添加它?
感谢您的帮助。
【问题讨论】:
-
在
function1,a是本地的。你可能想要self.a='hello world, ' -
所以,如果我想打印function2,我应该将function1中的a定义为self.a?
-
是的。在您的代码中,
self.a(对象self的属性a)从未被定义。function1中的a是局部变量。见Classes - Python Scopes and Namespaces。 -
感谢大家 ;) 现在终于可以了