• day 23 面向对象的命名空间与组合


    创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性

    而类有两种属性:态属性和动态属性

    1. 静态属性就是直接在类中定义的变量

    2.动态属性就是定义在类中的方法.

    其中类的数据属性是共享给所有对象的. 

    >>>id(egg.role)
    4341594072
    >>>id(Person.role)
    4341594072

     类的动态属性是绑定到所有的对象的。

    >>>egg.attack
    <bound method Person.attack of <__main__.Person object at 0x101285860>>
    >>>Person.attack
    <function Person.attack at 0x10127abf8> 

      def 类名:

      #__init__ 内置 初始化方法

      def __init__(self):

        self.name ='alex'

       #静态属性 --变量

       静态属性 =‘中国’  #是直接可以用类名.属性名调用的.

      #动态属性--方法(函数)

       def attack(self):pass

       def bite (self):pass

    实例化  创造对象 执行init方法

    对象 = 类名()

    print(对象.__dict__)

    软件重用的重要方式除了继承之外还有另外一种方式,即:组合

    组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合

    求环的面积

    from math import pi
    class Circle:
    def __init__(self,r):
    self.r =r
    def area(self):
    return pi*(self.r**2)
    def perimeter(self):
    return 2*pi*self.r
    class Ring:
    def __init__(self,outer,inner):
    self.outer =Circle(outer)#=
    self.inner =Circle(inner)
    def area(self):
    return self.outer.area() -self.inner.area()
    def perimeter(self):
    return self.outer.perimeter() +self.inner.perimeter()

    r = Ring(10,3)
    print(r.area())
    print(r.perimeter())

     老师与生日的例题

    class Brithday:
    def __init__(self,year,month,day):
    self.year = year
    self.month =month
    self.day =day
    class Teacher:
    def __init__(self,name,sex,course,birth):
    self.name=name
    self.sex =sex
    self.course =course
    self.birth =shengri
    shengri = Brithday(1993,3,6)
    laoshi = Teacher("alex",'male',"python",shengri)
    print(shengri)
    import time
    if shengri.month== time.localtime().tm_mon and shengri.day == time.localtime().tm_mday :
    print("%s生日快乐," %(laoshi.name))
    print(time.localtime().tm_year - shengri.year )

    输出结果:

    <__main__.Brithday object at 0x020F9930>
    alex生日快乐,
    25



  • 相关阅读:
    大数据学习之路又之从小白到用sqoop导出数据
    大数据学习之路又之从csv文件到sql文件的操作过程
    大三第一次极限测试总结
    学习套模板
    今天
    大数据学习之路之ambari配置(四)
    大数据学习之路之ambari配置(三)
    数据清洗——地域维度
    Hive数据分析(五)
    Hive数据分析(四)
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/8514632.html
Copyright © 2020-2023  润新知