如何在python中实现类属性共享

  介绍

本篇文章给大家分享的是有关如何在python中实现类属性共享,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

class 狗(对象):,   ,   时间=name 才能;& # 39;狗# 39;,   ,   def 才能init(自我):,   ,   ,,,self.age =18   ,   时间=d1 狗()   ,   时间=d2 狗()

这里有两个实例d1, d2吧。

d1.name  #,输出,dogd2.name  #,输出,dogd1.name =, & # 39; abc # 39;   d1.name  #,输出,abcd2.name  #,输出,dogDog.name  #,输出,狗

原因是d1.name输不出狗是因为这个实例共享了类属性,而是因为这个实例没有狗属性,所以python查找了类属性。但是一旦你修改了d1.name相当于给d1实例绑定了名字属性之后,d1.name就与类属性无关了。既然这样就谈不上实例之间共享类属性了,因为只要一赋值,就相当于绑定了属性,则上述d1.name的含义和d2.name的含义就不同了,它们的值也不同,很明显它们的数据没有共享。

但是要修改类属性,应该用

Dog.name =, & # 39; new 名字# 39;

而不应该是

dog1.name =, & # 39; new 名字# 39;

因为实例属性同名而覆盖类属性,的确是一个很容易忽视,出错的地方。

在祝辞祝辞,class 狗():   时间=?,name “dog"   ……,   在祝辞祝辞,d1 =,狗()   在祝辞祝辞d1.name   & # 39;狗# 39;   在祝辞祝辞,d2 =,狗()   在祝辞祝辞d2.name   & # 39;狗# 39;   在祝辞祝辞Dog.name   & # 39;狗# 39;   在祝辞祝辞,Dog.name =,“a"   在祝辞祝辞d.name   Traceback  (most  recent  call 最后一个):   ,File “& lt; stdin>“, line  1,拷贝& lt; module>   NameError: name  & # 39; d # 39; is  not 定义   在祝辞祝辞d1.name   & # 39;一个# 39;   在祝辞祝辞d2.name   & # 39;一个# 39;   祝辞祝辞在 Python主要用来做什么

Python主要应用于:1,网络开发;2、数据科学研究;3,网络爬虫;4、嵌入式应用开发,5日游戏开发;6桌面应用开发。

以上就是如何在Python中实现类属性共享,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

如何在python中实现类属性共享