Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,类中实例方法变量的作用域_Python - Fatal编程技术网

Python,类中实例方法变量的作用域

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

从下面的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                     # 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的本地人?