组合
作者:互联网
python中的组合
定义:一个对象中包含另一个对象
作用:降低代码的重复率,减少代码的冗余
练习
圆环
属性:记录大圆半径,小圆半径
实现计算面积:大圆-小圆
实现计算周长:大圆+小圆
一般写法 代码重复
# from math import pi # class Ring: # def __init__(self,r1,r2): # self.r1=r1 # self.r2=r2 # # def len(self): len1=2*pi*self.r1 len2=2*pi*self.r2 # zhouchang=len1+len2 # print('圆环周长',zhouchang) # # def area(self): area1=pi*self.r1**2 area2=pi*self.r2**2 # mianji=area1-area2 # print('圆环面积',mianji) # # circle=Ring(8,3) # circle.len() # circle.area()
组合写,降低代码重复率,将重复的计算部分提出来,如果有圆柱,圆锥就可以调用同样的方法
#组合写法 # from math import pi # class Circle: # def __init__(self,r): # self.r=r # def leng(self): # self.len=2*pi*self.r # return self.len # def s(self): # self.area=pi*self.r**2 # return self.area # # class Ring: # def __init__(self,r1,r2): # c1=Circle(r1) # 创建对象c1,c2 # c2=Circle(r2) # self.r1=c1 # self.r2=c2 # # def len(self): # '周长' # return self.r1.leng()+self.r2.leng() # # def area(self): # '面积' # return self.r1.s()-self.r2.s() # # ring1=Ring(8,3) # print(ring1.len()) # print(ring1.area())
练习题
#练习 学生类,课程类 class Student: def __init__(self,name,sex,age,course): self.name=name self.sex=sex self.age=age self.course=course class Course: def __init__(self,cname,period,price): self.cname=cname self.period=period self.price=price php=Course('php','3 months',18000) python=Course('python','5 months',25000) golang=Course('golang','2 months',17000) laowang=Student('老王','男',24,'python') laozhang=Student('老张','男',23,'php') xiaolin=Student('小林','女',20,'python') laowang.course=python print(laowang.course.price) python.price=30000 print(laowang.course.price)
标签:__,组合,r2,self,pi,def,r1 来源: https://www.cnblogs.com/gm11/p/16444070.html