我试图了解Python中的局部变量,特别是在OOP(面向对象编程)中。
如果我有这样的代码,例如:
class Testing():
def __init__(self, name):
surname = 'Doe'
print(surname)
self.name = name
变量'surname'在这种情况下如何工作,因为以这种方式打印它:print(surname)
会给我错误: NameError: name 'surname' is not defined
并将其打印出来那样:print(Testing.surname)
会给我这个错误: AttributeError: type object 'Testing' has no attribute 'surname'
最后,如果我在__init__
函数中打印它会完成工作,那么这是怎么回事变量可以在类外部还是在类内部访问?
答案 0 :(得分:2)
surname
仅在__init__
方法中可用。如果您想在其他任何地方访问它,您应该self.surname = 'Doe'
或Testing.surname = 'Doe'
。请注意,self
是对实例的引用。
通常类属性在类中声明如下:
class Testing:
surname = 'Doe'
您可以使用Testing.surname
访问它们和/或重新分配它们。