【发布时间】:2017-06-14 17:40:38
【问题描述】:
我正在尝试理解 Python OO(面向对象)中的类属性。
假设我有以下代码。
class Testing():
surname = "Doe"
def __init__(self):
print(surname)
如果我们打印surname,如上图,会抛出如下错误:NameError: name 'surname' is not defined。那么,如何从类外部或类内部访问这个类属性?
【问题讨论】:
-
OO 编程对 Python 中的局部变量没有影响。
-
局部变量与类属性无关。
-
print(email)或print(surname)? -
局部变量在类定义中的工作方式与在其他任何地方的工作方式相同:它们在本地可用,而不是在它们所在的范围之外(但可以从内部范围访问)。
-
@eyllanesc 是迂腐的,
self.surname将是一个实例属性。类级属性属于类,实例属性属于实例。
标签: python python-3.x oop scope