今天学习python中遇见了如下问题:
开始我用的3.4版本:
class Person:
name="aaa"
p1=Person()
p2=Person()
p1.name="bbb"
p2.name(输出显示也为“bbb”!)
我不知是不是自己记错了,我删掉了3.4版本后 改用2.7.8版本,结果
我想问的是,在python的类中,如何控制各个实例共享变量,如何让各个实例拥有各自的类变量(像java中类的变量前加上static 就可让所有实例化对象共享一个变量)
新手,请多多包涵
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
在变量前面添加
self.就是实例变量,比如self.name。如果不添加这个前缀,就是类变量。
python是python,java是java,python有其自己独特的方式。python中控制实例变量,需要指定
self,这个类似java里的this,必须明确指定,不能省略。如果没有制定,则是类变量。类变量是用类名的引用访问,当然实例也可以访问,访问的其实是一个地址的变量。代码如下:如果需要每个实例拥有自己的变量,采用
self, python的变量都是对象的引用,赋值的时候,就会创建新的引用。例如:你一定是记错了。按你说的你在 py3 中应该是这么写的
Person.name = 'bbb'