我是靠谱客的博主 优秀大地,最近开发中收集的这篇文章主要介绍类属性、实例属性,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

类属性

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

最后

以上就是优秀大地为你收集整理的类属性、实例属性的全部内容,希望文章能够帮你解决类属性、实例属性所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部