概述
类属性
class people:
name = 'Tom'
#公有的类属性
__age = 12
#私有的类属性
p = people()
print p.name
#正确
print people.name
#正确
print p.__age
#错误,不能在类外通过实例对象访问私有的类属性
print people.__age
#错误,不能在类外通过类对象访问私有的类属性
实例属性
实例属性是不需要在类中显示定义的,比如
class people:
name = 'Tom'
p = people()
p.age =12
print p.name
#正确
print p.age
#正确
print people.name
#正确
print people.age
#错误
在类外对类对象people进行实例化之后,产生了一个实例对象p,然后p.age = 12这句给p添加了一个实例属性age,赋值为12。这个实例属性是实例对象p所特有的,注意,类对象people并不拥有它(所以不能通过类对象来访问这个age属性)。当然还可以在实例化对象的时候给age赋值。
class people:
name = 'Tom'
#__init__()是内置的构造方法,在实例化对象时自动调用
def __init__(self,age):
self.age = age
p = people(12)
print p.name
#正确
print p.age
#正确
print people.name
#正确
print people.age
#错误
如果需要在类外修改类属性
,必须通过类对象
去引用然后进行修改。如果通过实例对象去引用,会产生一个同名的实例属性
,这种方式修改的是实例属性
,不会影响到类属性
,并且之后如果通过实例对象去引用该名称的属性,实例属性会强制屏蔽掉类属性,即引用的是实例属性
,除非删除了该实例属性
。
class people:
country = 'china'
print people.country
p = people()
print p.country
p.country = 'japan'
print p.country
#实例属性会屏蔽掉同名的类属性
print people.country
del p.country
#删除实例属性
print p.country
运行结果:
china
china
japan
china
china
转载于:https://www.cnblogs.com/loaderman/p/6561864.html
最后
以上就是优秀大地为你收集整理的类属性、实例属性的全部内容,希望文章能够帮你解决类属性、实例属性所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复