ad

《Python学习笔记 从入门到实战》_更了解Python的途径之一_7.5.2 类属性和实例属性

网友投稿 59 2023-11-07

【摘要】 本书摘自《Python学习笔记 从入门到实战》一书中第7章,第5节,由张学建编著。

7.5.2 类属性和实例属性

在 Python 程序中,通常将属性分为实例属性和类属性两种,具体说明如下所示。

(1)实例属性:是同一个类的不同实例,其值是不相关联的,也不会互相影响的,定 义时使用 “self. 属性名”的格式定义,调用时也使用这个格式调用。

《Python学习笔记 从入门到实战》_更了解Python的途径之一_7.5.2 类属性和实例属性

(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小时内删除侵权内容。

上一篇:《Python学习笔记 从入门到实战》_更了解Python的途径之一_11.1.3 实现字符串匹配处理
下一篇:《Python学习笔记 从入门到实战》_更了解Python的途径之一_8.2.3 创建并使用包
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×