您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

构造函数的使用方法介绍

2025/1/9 5:11:07发布17次查看
类是指:描述一种事物的定义,是个抽象的概念 
实例指:该种事物的一个具体的个体,是具体的东西 
打个比方: 
“人”是一个类。“张三”是人类的一个具体例子
在编程时也是同样的道理,你先自己定义一个“类”,当你需要用时,用“类”的定义来创造一个具体的例子。
用类的定义来创建一个实例,就叫做类的实例化。
实例化过程就是调用类的构造函数,完成该实例的数据分配
下面用一个洗衣机的例子来演示:
这个是一个简单的手动洗衣机 w 实例化了washer类:
 1 #class washer: 2 class washer:#定义一个washer类 3  4     def __init__(self): #这是定义类的构造函数,也是一个特殊的实例方法 5         self.water=0   #实例的属性(变量) 6         self.scour=0 7  8     def add_water(self,water):#实例的方法(函数),可以接受实例化后传过来的参数给类内实例变量,又因为实例继承了类的属性和方法,所以 9     #相当于传递给了类的实例化对象的实例变量10         print('add water:',water)11         self.water=water#在类的方法内引用实例变量用 self.属性名12 13     def add_scour(self,scour):14         self.scour=scour15         print('add scour:',scour)16 17     def start_wash(self):18         print('start wash...')19         20 if __name__=='__main__':21     w=washer()#类的实例化22     w.add_water(10)#传递参数到实例变量23     w.add_scour(2)24     w.start_wash()
执行结果:
类内定义实例方法需要手动加上self参数(如第4行),但在类实例化后调用这个方法时不必手动加self参数,python会自动添加,如第22行。
实例化方法是 w=washer()  ,可以看出需要在类后加一个括号。
类外调用类内定义的实例方法可以 实例名.方法名() ,例如
w.add_scour(2),必要的时候加上参数。
下面改动一下程序,弄成半自动洗衣机,即在类的内部,方法之间相互调用。
washa.py:
 1 class washer: 2  3     def __init__(self): 4         self.water=0 5         self.scour=0 6  7     def set_water(self,water): 8         self.water=water 9         self.add_water()10 11     def set_scour(self,scour):12         self.scour=scour13         self.add_scour()#在类内调用函数,用 self.方法名14 15     def add_water(self):16         print('add water:',self.water)17 18     def add_scour(self):19         print('add scour:',self.scour)20 21     def start_wash(self):22         print('start wash...')23         24 if __name__=='__main__':25     w=washer()26     w.set_water(10)27     w.set_scour(2)28     w.start_wash()29
也可以改成:
 1 class washer: 2  3     def __init__(self): 4         self.water=0 5         self.scour=0 6  7     def set_water(self,water): 8         self.water=water          9 10     def set_scour(self,scour):11         self.scour=scour         12 13     def add_water(self):14         print('add water:',self.water)15 16     def add_scour(self):17         print('add scour:',self.scour)18 19     def start_wash(self):20         self.add_water()21         self.add_scour()22         print('start wash...')23         24 if __name__=='__main__':25     w=washer()26     w.set_water(10)27     w.set_scour(2)28     w.start_wash()
运行结果:
做如下改动,用户可以不设置洗衣机加水和洗涤剂量也可以洗衣服:
1 class washer: 2  3     def __init__(self): 4         self.water=10#将实例属性修改为默认的标准洗衣程序需要的量 5         self.scour=2 6  7     def set_water(self,water): 8         self.water=water          9 10     def set_scour(self,scour):11         self.scour=scour         12 13     def add_water(self):14         print('add water:',self.water)15 16     def add_scour(self):17         print('add scour:',self.scour)18 19     def start_wash(self):20         self.add_water()21         self.add_scour()22         print('start wash...')23         24 if __name__=='__main__':25     w=washer()26 ##    w.set_water(10) #这两行代码注释掉,代表用户不必设置水和洗涤剂量27 ##    w.set_scour(2)28     w.start_wash()29
但是这样,只能加入10l水和2l洗涤剂,不好,要改进。用到构造函数。
1 class washer: 2  3     def __init__(self,water=10,scour=2): 4         self.water=water 5         self.scour=scour 6  7     def set_water(self,water): 8         self.water=water          9 10     def set_scour(self,scour):11         self.scour=scour         12 13     def add_water(self):14         print('add water:',self.water)15 16     def add_scour(self):17         print('add scour:',self.scour)18 19     def start_wash(self):20         self.add_water()21         self.add_scour()22         print('start wash...')23         24 if __name__=='__main__':25     w=washer()26     w.start_wash()27 28     wb=washer(100,10)29     wb.start_wash()30 31     wc=washer(100,10)32     wc.set_water(50)33     wc.set_scour(5)34     wc.start_wash()35 36     37 38     39
运行结果: 
构造函数可以使类在实例化时实例对象更加丰富,具有实例化不同种类的实例的作用。
以上就是构造函数的使用方法介绍的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product