叶墨沫 发表于 2022-8-11 17:46:33

python里面的类和对象对类里面的属性进行修改的问题

如图,我想讲x转换为全局变量进而通过student对象来修改Students类里面的x值。但是结果和我想的不一样,x值没有被修改,想问问为什么

鱼cpython学习者 发表于 2022-8-11 18:05:38

class Students:
        x = 100
        def reset_x(self, v):
                Students.x = v

临时号 发表于 2022-8-11 18:05:52

在reset_x函数中,你将x声明为一个全局变量,也就是说在reset_x函数中修改的x是一个全局变量,并不是Students类中的x
你可以试着print(x)你就知道了

临时号 发表于 2022-8-11 18:07:32

解决方法:在reset_x函数中对Students类中的x修改就可以了
class Students:
    x = 100
    def reset_x(self,v):
      Students.x=v

print(Students.x)

叶墨沫 发表于 2022-8-11 18:20:28

临时号 发表于 2022-8-11 18:05
在reset_x函数中,你将x声明为一个全局变量,也就是说在reset_x函数中修改的x是一个全局变量,并不是Students ...

谢谢,刚刚去搜了哈变量的范围,晓得了那个类里面的变量是成员变量。。
页: [1]
查看完整版本: python里面的类和对象对类里面的属性进行修改的问题