Python案例:Person类的属性

来自CloudWiki
跳转至: 导航搜索

案例描述

编写个人信息类并建立对象访问属性。  

案例分析

个人信息类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,类属性。