欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

[Python]实现Python类的公共属性

程序员文章站 2022-05-18 16:41:14
...

背景

今天看到有人问Python的类有没有类似公共属性的特性,就是修改了某个实例的对应属性,该类的所有实例的对应属性都随之修改,想了想用了一个辅助的单例模式的类解决了问题。

思路

修改一个实例另一个实例也跟着修改,听起来很像单例模式的特性,但又只针对一个属性,所以可以借用一个辅助的类。

代码

class Attr():
    attr = {}
    def __init__(self):
        self.__dict__ = self.attr
class Myclass():
    def __init__(self):
        self.attr = Attr()
    @property
    def value(self):
        return self.attr.value
    @value.setter
    def value(self, value):
        self.attr.value = value

演示

In [47]: a = Myclass()

In [48]: b = Myclass()

In [49]: a.value = 1

In [50]: b.value
Out[50]: 1

In [51]: b.value = 2

In [52]: a.value, b.value
Out[52]: (2, 2)

感想

要活用设计模式和它们的组合。

更多[Python]实现Python类的公共属性 相关文章请关注PHP中文网!

相关标签: python