【python】的类和实例二

1、类属性和实例属性的定义
类属性:
类属性是与类相关联的属性。它们属于类本身,而不是类的任何特定实例。这意味着无论创建多少个类的实例,它们都会共享相同的类属性。类属性通常位于类的顶部,定义在类的任何方法之外。

类属性的一个常见用途是存储与类相关的常量或共享的状态信息。
比如:
存储常量和配置信息:可以使用类属性来存储与类相关的常量值或默认配置信息。例如,存储数学常数、API密钥或默认设置。
共享状态信息:如果需要在所有类的实例之间共享某种状态信息,类属性是一个合适的选择。例如,可以使用类属性来记录创建的实例数量。

实例属性:
实例属性是与类的每个实例相关联的属性。每个类的实例都可以拥有自己的一组实例属性。实例属性通常在类的构造方法(通常是__init__方法)内定义,并使用self关键字来访问,或者直接通过实例绑定。

实例属性的一个重要特点是每个实例都有自己独立的一组实例属性。这意味着一个实例的属性值可以与另一个实例不同,它们互不影响。
比如:
存储对象的状态:实例属性通常用于存储对象的状态信息。例如,如果创建一个代表用户的类,那么每个用户对象可以有自己的用户名、电子邮件地址等属性。
存储对象特定的数据:每个实例可以拥有自己独立的数据。例如,如果创建一个代表图书的类,每本书可以有自己的标题、作者和出版日期。

类属性和实例属性的主要区别:
类属性属于类本身,而实例属性属于类的每个实例。
所有类的实例共享相同的类属性,而每个实例都有自己独立的实例属性。
类属性通常用于存储与类相关的常量或共享状态,而实例属性通常用于存储每个实例特有的数据。

代码示例:

class Student:
    name = 'student'  # 类属性


s = Student()  # 实例化
print(s.name)  # student
s.name = '张三'
print(s.name)  # 张三
del s.name  # 删除实例属性
print(s.name)  # student
s.score = 99  # 添加实例属性
print(s.score)  # 99
print(Student.name)  # student
Student.name = '李四'  # 动态修改类属性
print(Student.name)  # 李四
print(s.name)  # 李四

在以上代码中可以总结:
1 当实例属性和类属性冲突的时候,实例属性会屏蔽掉类属性
2 可以动态修改实例属性指向
3 可以动态添加实例属性
4 可以动态删除实例属性,删除实例属性后,对应实例属性会指向对应的类属性值
5 可以动态修改类属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值