(更新时间)2021年3月25日 python基础知识(类属性和实例属性)
发布日期:2021-06-29 15:14:46
浏览次数:3
分类:技术文章
本文共 1509 字,大约阅读时间需要 5 分钟。
1.类属性
"""对象(实例对象): 通过class定义的类创建的, 即通过类实例化来的, 又称为实例, 实例对象实例对象定义的属性称为是 实例属性. 通过实例对象(self) 定义的属性都是实例属性实例属性: 每个实例对象中都存在一份,并且值可能是不一样的类(类对象): 通过class定义的,又称为 类对象, 是python解释器在创建类的时候自动创建的作用: 1. 通过类对象,去定义实例对象 2. 类对象可以保存一些属性信息,称为类属性类属性的定义: 在类内部,方法外部定义的变量就是类属性类属性,字内存中只有一份如何确定一个属性是该定义为实例属性还是类属性?先假设这个属性为实例属性,查看这个属性值对于不同的实例对象, 属性值是否都一样,并且需要同时变化.如果是, 则可以定义为类属性如果不是,则可以定义为实例属性"""class Dog(object): # 定义类属性, 类名 class_name = '狗类' def __init__(self, name, age): # 定义的都是实例属性 self.name = name self.age = age# 创建Dog 类对象dog = Dog('大黄', 2)# print(dog.__dict__) # 打印dog对象具有的属性# 类名.__dict__ 查看类对象具有的属性# print(Dog.__dict__)# 访问类属性# 类名.类属性print(Dog.class_name)# 修改类属性 类名.类属性 = 属性值Dog.class_name = 'Dog类'print(Dog.class_name)# 补充, 注意: 如果不存在和实例属性名相同的类属性.则可以使用实例对象访问类属性的值# 如果存在重名,则使用实例属性访问的一定是实例属性,不是类属性print(dog.class_name)
2.实例属性(对象属性)
class People(object): address = '山东' # 类属性 def __init__(self): self.name = 'xiaowang' # 实例属性 self.age = 20 # 实例属性p = People()p.age = 12 # 实例属性print(p.address) # 正确print(p.name) # 正确print(p.age) # 正确print(People.address) # 正确print(People.name) # 错误print(People.age) # 错误
3.通过实例(对象)去修改类属性
class People(object): 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)
总结
- 如果需要在类外修改类属性,必须通过类对象去引用然后进行修改。如果通过实例对象去引用,会产生一个同名的实例属性,这种方式修改的是实例属性,不会影响到类属性,并且之后如果通过实例对象去引用该名称的属性,实例属性会强制屏蔽掉类属性,即引用的是实例属性,除非删除了该实例属性。
转载地址:https://codeboy.blog.csdn.net/article/details/115214854 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月11日 16时34分04秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MySQL 表与表之间的关系
2019-04-29
pymysql 的基础应用
2019-04-29
Python 管理程序改进——连接MYSQL
2019-04-29
Python 爬虫-豆瓣影星图片下载
2019-04-29
网页端数据库操作界面—主题函数文件
2019-04-29
网页端数据库操作界面-Html页面(1)
2019-04-29
Python爬虫 百度热搜热点
2019-04-29
excel的常用函数(二)
2019-04-29
excel文本函数
2019-04-29
电商大战二十年
2019-04-29
编程程软件测试思维方式:如何科学制定测试计划
2019-04-29
BLE蓝牙4.0串口调试助手
2019-04-29
树莓派WIFI设置
2019-04-29
nanopi2 启动信息
2019-04-29
phpstudy https
2019-04-29
Linux下EasyPanel版本安装及升级
2019-04-29
raspberry pi(树莓派) + easycap d60 视频采集
2019-04-29
WebRTC
2019-04-29