介绍
本篇文章给大家分享的是有关如何在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中实现类属性共享,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。