Python中类和对象以及self的作用
1.为什么要使用类
只要定义好类的构造函数,就可以很方便的生成这个类的实例,并且引用数据成员也很方便。
可将类想象成飞机的设计图纸,而对象是某种类型的飞机(具有这种类型飞机的一些属性)。
2.类和函数的区别
- 函数实现功能的模块化
- 类实现功能和数据的模块化
3.类的定义:
#类名第一个字母要大写
class Round:
#类的构造函数,用来初始化类,将需要的数据经过初始化传递过来
#—_init_函数实例化的时候自动执行
def _init_(self,radius)
#使用类的属性接收传递过来的数据
self.radius = radius
#定义周长的属性,用来存储周长的值
self.cir = 0.0
#定义面积的属性,用来存储面积的值
self.area = 0.0
def get_cir(self):
self.cir = 2*3.14*self.radius
def get_area(self):
self.area = 3.14*self.radius*self.radius
上面的类已经写好,那么在实例化对象的过程中如何调用类:
#若类是在项目中的另一个round07.py的文件中编写,在其他文件中调用
#需要引用模块
from utils import round07
#实例化一个对象
myround = round07.Round(6.6)
#计算周长
myround.get_cir()
当然也可以让这个类自动执行计算周长和面积,因为_init_函数在实例化的过程中自动执行,增加两条语句:
class Round:
def _init_(self,radius)
#使用类的属性接收传递过来的数据
self.radius = radius
self.cir = 0.0
self.area = 0.0
#让类自动执行方法
self.get_cir()
self.get_area()
def get_cir(self):
self.cir = 2*3.14*self.radius
def get_area(self):
self.area = 3.14*self.radius*self.radius
这时,在调用,仅需如下指令:
myround = round07.Round(6.6)
4.类中self关键字作用:
类实例化多个对象时,通过self找到自己对象的数据,可以将self认为是一个指针,指向当前对象,self确保每一个对象的数据都是引用自己对象的数据。在当前对象空间去找变量数据。如下图所示:Round类实例化两个对象(my_round 和 obj_round)。