zoukankan      html  css  js  c++  java
  • day23 03 组合的例子

    day23 03 组合的例子

    一、用到组合的方式,编写一个圆环,并能够计算出它的周长和面积

     1 from math import pi  # 从内置函数里面导入pi
     2 # 先定义一个圆类
     3 class Circle:
     4     def __init__(self,r):  # 初始化和self的创建,一个圆的属性就是半径
     5         self.r = r  # 赋值
     6 
     7     def area(self):  # 和圆相关的方法,计算圆的面积
     8         return self.r**2 * pi
     9     def perimeter(self):  # 和圆相关的方法,计算圆的面积
    10         return 2*pi*self.r
    11 
    12 # 再定义一个圆环类
    13 class Ring:
    14     def __init__(self,outside_r,inside_r):  # 初始化和self的创建,一个圆环的属性外半径和内半径
    15         self.outside_c = Circle(outside_r)  # 圆环的外半径通过圆类的半径赋值
    16         self.inside_c = Circle(inside_r)  # 圆环的内半径也是通过圆类的半径赋值
    17     def area(self):
    18         return self.outside_c.area() - self.inside_c.area()  # 直接引用圆类里面的计算面积的area方法,这里就涉及了组合的方法
    19     def perimeter(self):
    20         return self.outside_c.perimeter() + self.inside_c.perimeter()  # 直接引用圆类里面的计算周长的perimeter方法,这里就涉及了组合的方法
    21 ring = Ring(20,10)
    22 print(ring.area())  # 计算圆环的面积
    23 print(ring.perimeter())  # 计算圆环的周长

    运行结果:

    C:Userssku1-1PycharmProjectsuntitledvenvScriptspython.exe "C:/Users/sku1-1/PycharmProjects/untitled/day23  03 组合例子.py"
    942.4777960769379
    188.49555921538757
    
    Process finished with exit code 0

    二、创建一个老师类,老师有生日,生日也是一个类,涉及组合的方法

    class Teacher:
        def __init__(self,name,age,sex,birthday):
            self.name = name
            self.age = age
            self.sex = sex
            self.birthday = birthday
    
    class Birthhday:
        def __init__(self,year,month,day):
            self.year = year
            self.month = month
            self.day = day
    
    b = Birthhday(2000,5,1)  # 实例化
    teacher = Teacher('丽丽',18,'',b)  # 实例化
    print(teacher.name)
    print(teacher.birthday.year)  # 这里涉及了组合
    print(teacher.birthday.day)  # 这里涉及了组合

    运行结果:

    C:Userssku1-1PycharmProjectsuntitledvenvScriptspython.exe "C:/Users/sku1-1/PycharmProjects/untitled/day23  03 组合例子.py"
    丽丽
    2000
    1
    
    Process finished with exit code 0

    三、复习

    1、面向对象编程

      思想:角色的抽象,创建类,创建角色(实例化),操作这些实例

      关键字:class

    基本框架:

    class 类名:
        静态属性='aaaa'
        def _init_(self):
            pass

    2、类名与对象的操作

    类名.静态属性----存储在类的命名空间里面

    对象=类名()----实例化过程:创建了一个self对象,执行_init_方法初始化,返回self对象给外部

    对象.属性

    对象.方法===类名.方法(对象)

    对象可以使用静态变量

    类不可以使用对象里面的属性

    3、组合:至少有两个类,是什么有什么的关系(这两个什么指的都是类),通过一个类去查看另一个类的属性

    一个类的对象是另外一个类对象的属性

  • 相关阅读:
    软件测试人员的年终绩效考核怎么应对
    收藏
    顶踩组件 前后两版
    订阅组件
    hdu 1963 Investment 完全背包
    hdu 4939 Stupid Tower Defense 动态规划
    hdu 4405 Aeroplane chess 动态规划
    cf 414B Mashmokh and ACM 动态规划
    BUPT 202 Chocolate Machine 动态规划
    hdu 3853 LOOPS 动态规划
  • 原文地址:https://www.cnblogs.com/wxm422562/p/10887019.html
Copyright © 2011-2022 走看看