• 【学习整理】第七章 更加抽象


    一、特点
    和java一样 python是一种面向对象的语言,其特点是 封装、继承、多态,
    二、定义一个类
    _metaclass_ = type #创建一个类的开头写法,也可以使用继承object类的方式 ,后面说
    class Person:
    def setName(self,name):
    self.name = name;
    def getName(self):
    return self.name;
    def greet(self):
    print"Hello!world,I'm %s." % self.name
    三、属性的私有化
    class Secretive:
    def __inaccessible(self): #私有的方法是在方法名前面加两个双下划线
    print"bet you can't see me..."
    这样外部无法通过方法名访问该方法,如果非要访问也是可以的:
    s=Secretive();
    s._Secretive_inaccessible(); #通过单下划线+类名+单下划线+方法名也是可以访问的;
    四、方法的继承
    class Filter:
    def init(self):
    self.block = []
    def fileter(self,sequence):
    return ...
    class SPAMFilter(Filter): #括号内的类是父类/超类
    def init(self):
    ...
    查看一个类是否是另一个类的超类:
    insubclass(SPAMFilter,Filter)
    True
    查看一个类的父类们:
    SPAMFilter._base_
    (<class_main_.Filter at ox17le40>,)
    Filter._base_
    ()
    检查一个对象是否是一个类的实例:
    s = SPAMFilter()
    isinstance(s,SPAMFilter)
    True
    查看一个对象属于哪个类,使用_class_
    s._class_
     
    python支持多个超类/父类/基类 这种行为成为多重继承
    classA:
    ...
    classB:
    ...
    classC(A,B): #此时如果A、B中有命名相同的方法,则先继承的A会覆盖B中命名相同的方法;使B中的这个方法不可用;
    ...
    五、接口和内省
    判断对象 tc 是否具有talk 和 fnord的方法:
    hasattr(tc,'talk')
    true
    hasattr(tc,'talk')
    False
     
     
     
  • 相关阅读:
    ActiveMQ 中的链表
    ActiveMQ 的线程池
    ActiveMQ broker解析
    ActiveMQ broker和客户端之间的确认
    ActiveMQ producer 流量控制
    基于大数据的精准营销与应用场景
    Math.abs为Integer.Min_VALUE返回错误的值
    使用http_load网站压力测试
    可伸缩系统的架构经验
    Tumblr:150亿月浏览量背后的架构挑战
  • 原文地址:https://www.cnblogs.com/xujie09/p/7138162.html
Copyright © 2020-2023  润新知