python进阶三(面向对象编程基础)【3-1 python中创建类属型】

2020-12-13 17:00

阅读:265

标签:绑定   obj   定义   进阶   面向对象   tip   span   类的属性   ESS   

python中创建类属性

类是模板,而实例则是根据类创建的对象。

绑定在一个实例上的属性不会影响其他实例,但是,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。

定义类属性可以直接在 class 中定义:

1 class Person(object):
2     address = Earth
3     def __init__(self, name):
4         self.name = name

因为类属性是直接绑定在类上的,所以,访问类属性不需要创建实例,就可以直接访问

print Person.address
# => Earth

对一个实例调用类的属性也是可以访问的,所有实例都可以访问到它所属的类的属性:

1 p1 = Person(Bob)
2 p2 = Person(Alice)
3 print p1.address
4 # => Earth
5 print p2.address
6 # => Earth

任务

请给 Person 类添加一个类属性 count,每创建一个实例,count 属性就加 1,这样就可以统计出一共创建了多少个 Person 的实例。

 1 class Person(object):
 2     count = 0
 3     def __init__(self,name):
 4         Person.count = Person.count +1
 5         self.name = name
 6 
 7 p1 = Person(Bob)
 8 print Person.count
 9 
10 p2 = Person(Alice)
11 print Person.count
12 
13 p3 = Person(Tim)
14 print Person.count

 

python进阶三(面向对象编程基础)【3-1 python中创建类属型】

标签:绑定   obj   定义   进阶   面向对象   tip   span   类的属性   ESS   

原文地址:https://www.cnblogs.com/ucasljq/p/11622538.html


评论


亲,登录后才可以留言!