Python,类中实例方法变量的作用域
从下面的Python代码片段中,变量z是方法_1的局部变量,不应该从这个方法中访问它,但是如何从方法_2中访问它呢 如果我调用方法2,它将打印z值Python,类中实例方法变量的作用域,python,Python,从下面的Python代码片段中,变量z是方法_1的局部变量,不应该从这个方法中访问它,但是如何从方法_2中访问它呢 如果我调用方法2,它将打印z值 class Test: def __init__(self): self.x=100 self.y=200 def method_1(self): self.z=self.x+self.y
class Test:
def __init__(self):
self.x=100
self.y=200
def method_1(self):
self.z=self.x+self.y # This variable has been created in method_1.
def method_2(self):
print("Z value from method_1:",self.z) # Accessing z value in method_2
t1=Test()
t1.method_1()
t1.method_2()
您可以在方法2中访问它,因为您在self上定义了它。这意味着它是一个实例变量,可以在该实例内部访问。self始终指类的实际实例。因此,在您的情况下,即使您在方法中懒洋洋地在self上声明变量,在声明之后,绑定到self的任何方法都可以访问它,即它们共享相同的状态
Python类中没有局部实例作用域。z不是局部变量。这是自我的一种属性。这就是self.z的意思。你能澄清你的问题吗?具体地说,是什么让你认为z是nethod_1的本地人?