录入查看excel代码的方法教程步骤-英雄云拓展知识分享
59
2023-11-07
【摘要】 本书摘自《Python学习笔记 从入门到实战》一书中第7章,第5节,由张学建编著。
7.5.2 类属性和实例属性
在 Python 程序中,通常将属性分为实例属性和类属性两种,具体说明如下所示。
(1)实例属性:是同一个类的不同实例,其值是不相关联的,也不会互相影响的,定 义时使用 “self. 属性名”的格式定义,调用时也使用这个格式调用。
(2)类属性:是同一个类的所有实例所共有的,直接在类体中独立定义,引用时要使用 “类名 .类变量名”的格式来引用,只要是某个实例对其进行修改,就会影响其他所有这个
类的实例。
请看下面的实例,演示了定义并使用类属性和实例属性的过程。
实例7- 11:改变变量的值
源码路径:下载包\daima\7\7-11
实例文件 shux.py 的具体实现代码如下所示。
class X_pes_innartyf,rp0et:y"
#定义类X Property
#设置类的属性
#构造方法
#设置实例属性
def class_info(self): #定义方法class_info() 输出信息
print( '实例变量值:',self.x)
def chnx
def chng_cn(self,name):
X_Property.class_name =name
aaa =X_Property()
bbb =X_Property()
print( '初始化两个实例')
aaa.class_info()
bbb.class_info()
print('修改实例变量!!
print( '修改 aaa 实例变量')
aaa.chng(3)
aaa.class_info()
bbb.class_info()
print( '修改bbb 实例变量')
bbb.chng(10)
aaa.class_info()
bbb.class_info()
print( ' 修改类变量')
print( '修改 aaa 类变量')
aaa,chng_cn('aaa')
aaa.class_info()
bbb.class_info()
print( '修改bbb 类变量()
bbb.chng_cn('bbb')
aaa.class_info()
bbb.class_info()
#输出实例变量值
#定义方法chng() 修改实例属性
#引用实例属性
#定义方法 chng cn()修改类属性
#引用类属性
#定义类X_Property 的实例化对象aaa #定义类x_Property 的实例化对象bbb
#调用方法class info()输出信息
#调用方法 class_info() 输出信息
#修改对象 aaa 的实例变量
#调用方法class
#调用方法class
#修改bbb 实例变量
#调用方法class_info() #调用方法class_info()
井修改 aaa 类变量
#调用方法 class_info() #调用方法 class_info()
输出信息 输出信息
输出信息 输出信息
#修改bbb 类变量
#调用方法class info() 输出信息
#调用方法 class_info() 输出信息
在上述实例代码中,首先定义了类X_Property, 在类中有 一 个类属性 class_name 和 一个 实例属性x, 两个分别修改实例属性和类属性的方法。然后分别实例化这个类,并调用这两 个类实例来修改类属性和实例属性。对于实例属性来说,两个实例相互之间并不联系,可以 各自独立地被修改为不同的值。而对于类属性来说,无论哪个实例修改了它,都会导致所有 实例的类属性值发生变化。执行后会输出:
类变量值: X Property
实例变量值:0
修改实例变量
a值a:实perty
实例变量值:3
类变量值: X Property
实 例 变 量 值 : 0
b值b perty
实例变量值:3
类变量值: x_Property
实例变量值:10
修改类变量
修改 aaa 类变量
类变量值: aaa
实例变量值: 3
类变量值: aaa
实例变量值:10
修改 bbb 实例变量
类变量值: bbh
实例变量值:3
类变量值: bbb
实例变量值:10
7.5.3 设置属性的默认值
在 Python程序中,类中的每个属性都必须有初始值,并且有时可以在方法 in it 0 中 指定某个属性的初始值是0或空字符串。如果设置了某个属性的初始值,就无须在_init ) 中提供为属性设置初始值的形参。假设有这么一个场景,年底将至,想换辆新车,初步中意 车型是奔驰E 级。例如在下面的实例中,定义了一个表示汽车的类,在类中包含了和汽车有 关的属性信息。
实例7-12:设置汽车的属性信息
源码路径:下载包\daima\7\7-12
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~