【发布时间】:2014-08-15 17:04:22
【问题描述】:
我正在学习 Python 3,我对 Python 中的面向对象编程有一个非常基本的问题。这是我的代码。
class pet:
number_of_legs = 0
def count_legs(self):
print("I have %s legs" %dog.number_of_legs)
dog = pet()
dog.number_of_legs = 4
dog.count_legs()
此代码打印:
I have 4 legs
为什么 count_legs 方法不会给出像“Unknown variable dog in print”这样的错误。 变量 dog 存在于类之外。
这段代码是如何工作的?这种行为背后的动机是什么?
【问题讨论】:
-
“变量 dog 存在于类外”。是的,这就是该方法不会出错的原因。没有规定说“类中的方法不能看到类外的变量”。
标签: python oop python-3.x