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

背景

今天看到有人问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中文网!

Posted in 未分类

发表评论