“Python案例:Person类的属性”的版本间的差异
来自CloudWiki
(创建页面,内容为“==案例描述== 编写个人信息类并建立对象访问属性。 ==案例分析== 个人信息类Person定义如下: <nowiki>class Person: name="XXX"…”) |
|||
第17行: | 第17行: | ||
gender="X" | gender="X" | ||
age=0 | age=0 | ||
− | + | ||
p=Person() | p=Person() | ||
print(p.name,p.gender,p.age) | print(p.name,p.gender,p.age) | ||
第24行: | 第24行: | ||
p.gender="Male" | p.gender="Male" | ||
p.age=20 | p.age=20 | ||
+ | print(p.name,p.gender,p.age) | ||
+ | print(Person.name,Person.gender,Person.age) | ||
+ | |||
Person.name="B" | Person.name="B" | ||
Person.gender="Female" | Person.gender="Female" | ||
第29行: | 第32行: | ||
print(p.name,p.gender,p.age) | print(p.name,p.gender,p.age) | ||
print(Person.name,Person.gender,Person.age) | print(Person.name,Person.gender,Person.age) | ||
+ | |||
</nowiki> | </nowiki> |
2022年12月13日 (二) 00:03的最新版本
案例描述
编写个人信息类并建立对象访问属性。
案例分析
个人信息类Person定义如下:
class Person: name="XXX" gender="X" age=0
其中name,gender,age都是类属性,类属性一般使用类名称Person访问。
class Person: name="XXX" gender="X" age=0 p=Person() print(p.name,p.gender,p.age) print(Person.name,Person.gender,Person.age) p.name="A" p.gender="Male" p.age=20 print(p.name,p.gender,p.age) print(Person.name,Person.gender,Person.age) Person.name="B" Person.gender="Female" Person.age=21 print(p.name,p.gender,p.age) print(Person.name,Person.gender,Person.age)
结果:
XXX X 0 XXX X 0 A Male 20 B Female 21
由此可见通过对象a与Person类名称都可以读取到类属性name、gender、age,但是改写这些类属性时下列语句:
p.name="A" p.gender="Male" p.age=20
结果是为对象p生成了自己的name、gender、age,属性,改写的不是类属性name、gender、age,只有通过Person的下列语句:
Person.name="B" Person.gender="Female" Person.age=21
改写的才是name、gender、age,类属性。