python的面向对象编程

1、类,意思可以理解为一个种类,比如:人类、猴子、大猩猩等等形象化为现实中的物种。类名首字母都大写

2、实例,即通过类创建出来的一个个独立的对象,不同的对象拥有相同的类中的方法,但不同的对象各自的数据是不相同的。比如人类可以分为男人和女人,男人和女人都是拥有相同的大特征,但是一些小特征是不同的。

3、实例化,即创建实例的过程,类名+()即为实例化。类在需要用到的时候,首先必须实例化

4、方法,即类中定义的函数,实例方法

5、类变量,即类中定义的变量,属于公共的变量,每个实例都可以用

6、实例属性,即类中实例定义的变量

7、属性方法,即通过@property将一个方法变成一个静态属性

 1 class Baby():
 2     country='China'  #类变量,公共的变量,每个实例都可以用
 3     def my(self):
 4         self.name='sammy'
 5     def cry(self):
 6         print('wawa')
 7 
 8     @property
 9     def hw(self):
10         print('hello world!')
11 
12 b=Baby()
13 b.hw()
14 #执行b.hw()将会报错:TypeError: 'NoneType' object is not callable
15 #因为hw已经被定义为一个静态的属性,已经不是一个方法,所以在执行的过程中无需添加括号(),所以应该写成b.hw

8、类方法,即通过一个@classmethod将一个方法变成一个类方法

 1 class Baby():
 2     country='China'
 3     def my(self):
 4         self.name='sammy'
 5     def cry(self):
 6         print('wawa')
 7 
 8     @property
 9     def hw(self):
10         print('hello world!')
11     @classmethod
12     def xm(cls):
13         print(cls.country) #它可以通过cls使用类变量
14         #print(cls.cry()) #它不能调用这个类里面的其他实例方法和实例变量
15         print('我是类方法')
16 
17 # Baby.xm()
18 #b=Baby()
19 Baby().xm()

(1)类方法可以不用实例化一个对象后再去使用,可以直接通过类名直接调用,例如:Baby().xm()

(2)可以通过cls使用类中的类变量

(3)无法使用类中的实例方法和实例变量

猜你喜欢

转载自www.cnblogs.com/lslin/p/9085509.html