zoukankan      html  css  js  c++  java
  • 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)
    

      

  • 相关阅读:
    Django-序列化器
    HTTP请求头响应头的信息
    HTTP协议
    IAAS,PAAS,SAAS
    MySQL-部分名词解释
    MySQL-事务和特性
    用Java仿QQ界面聊天小项目
    25篇Java入门技术博客,送给准备入坑的你
    Java自学推荐书籍
    Java中的并发讲解
  • 原文地址:https://www.cnblogs.com/zhzhlong/p/8531574.html
Copyright © 2011-2022 走看看