其他分享
首页 > 其他分享> > 组合

组合

作者:互联网

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