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

Posted ucasljq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python进阶三(面向对象编程基础)3-1 python中创建类属型相关的知识,希望对你有一定的参考价值。

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中创建类属型的主要内容,如果未能解决你的问题,请参考以下文章

python进阶三(面向对象编程基础)3-4 python中定义类方法

Python基础-第七天-面向对象编程进阶和Socket编程简介

进击的Python第七章:Python的高级应用面向对象编程进阶

Python基础-week06 面向对象编程进阶

python - 面向对象编程基础知识 (进阶)

进阶学Python:Python面向对象基础!