当我试图理解Python中的self概念时,我遇到了一个我认为很有帮助的例子。但是有一部分让我困惑。为什么print a.i
输出两个不同的值?在第一种情况下,输出为5
,这对我来说很有意义。但是几行之后,同样的print a.i
语句输出123
。
def say_hi():
return 'hi!'
i = 789
class MyClass(object):
i = 5
def prepare(self):
i = 10
self.i = 123
print i
def say_hi(self):
return 'Hi there!'
def say_something(self):
print say_hi()
def say_something_else(self):
print self.say_hi()
输出
>>> print say_hi()
hi!
>>> print i
789
>>> a = MyClass()
>>> a.say_something()
hi!
>>> a.say_something_else()
Hi there!
>>> print a.i
5
>>> a.prepare()
10
>>> print i
789
>>> print a.i
123
a.prepare()
,其中你有self.i = 123
。 - njzk2