• Python()- 面向对象的组合用法



    面向对象的组合用法

    一个类中以另一个类的对象作为数据属性(一个类中引用另一个类的对象)
    一种 "有" 的关系:
    比如:定义 1个人类 & 1个武器类 然后 张三 有 枪 李四 有 刀

    from math import pi
    
    class Circle:
    '''
    定义了一个圆形类;
    提供计算面积(area)和周长(perimeter)的方法
    '''
    def __init__(self,radius):
    self.radius = radius
    
    def area(self):
    return pi * self.radius * self.radius
    
    def perimeter(self):
    return 2 * pi *self.radius
    
    
    circle = Circle(10)             #实例化一个圆
    area1 = circle.area()         #计算圆面积
    per1 = circle.perimeter()     #计算圆周长
    print(area1,per1)             #打印圆面积和周长
    

    ############################

    class Ring: ''' 定义了一个圆环类 提供圆环的面积和周长的方法 ''' def __init__(self,radius_outside,radius_inside): self.outsid_circle = Circle(radius_outside) #*****直接在一个类中生成另一个类的对象(也可以参数直接传入一个类的对象) self.inside_circle = Circle(radius_inside) def area(self): return self.outsid_circle.area() - self.inside_circle.area() def perimeter(self): return self.outsid_circle.perimeter() + self.inside_circle.perimeter() ring = Ring(10,5) #实例化一个环形 print(ring.perimeter()) #计算环形的周长 print(ring.area()) #计算环形的面积

      

    ===========================

    class BirthDate:
    def __init__(self,year,month,day):
    self.year=year
    self.month=month
    self.day=day
    
    class Couse:
    def __init__(self,name,price,period):
    self.name=name
    self.price=price
    self.period=period
    
    class Teacher:
    def __init__(self,name,gender,birth,course):
    self.name=name
    self.gender=gender
    self.birth=birth
    self.course=course
    def teach(self):
    print('teaching')
    
    p1=Teacher('周','male',
    BirthDate('1995','1','27'),             #传进去的是对象
    Couse('python','28000','8 months') 
    )
    
    print(p1.birth.year,p1.birth.month,p1.birth.day)
    
    print(p1.course.name,p1.course.price,p1.course.period)
    

      

  • 相关阅读:
    基于AngularJS的前端云组件最佳实践
    光裁员有什么用,商业变现才是王道
    迄今为止最完整的推送说明书
    个推技术实现原理介绍
    安卓推送——个推服务端api使用误区
    Gerrit代码Review入门实战
    iOS AFNetworking HTTPS 认证
    iOS开发零碎知识点
    Xcode 如何删除过期的Provisioning Profile文件
    一个section刷新 一个cell刷新
  • 原文地址:https://www.cnblogs.com/zhzhlong/p/8531574.html
Copyright © 2020-2023  润新知