最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 14:26:43
文档

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

[Python]实现Python类的公共属性:背景今天看到有人问Python的类有没有类似公共属性的特性,就是修改了某个实例的对应属性,该类的所有实例的对应属性都随之修改,想了想用了一个辅助的单例模式的类解决了问题。思路修改一个实例另一个实例也跟着修改,听起来很像单例模式的特性,但又只针对一
推荐度:
导读[Python]实现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中文网!

文档

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

[Python]实现Python类的公共属性:背景今天看到有人问Python的类有没有类似公共属性的特性,就是修改了某个实例的对应属性,该类的所有实例的对应属性都随之修改,想了想用了一个辅助的单例模式的类解决了问题。思路修改一个实例另一个实例也跟着修改,听起来很像单例模式的特性,但又只针对一
推荐度:
标签: 中的 实现 属性
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top