zoukankan      html  css  js  c++  java
  • 【学习整理】第七章 更加抽象

    一、特点
    和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
     
     
     
  • 相关阅读:
    PHP导入导出Excel方法
    14款优秀的MySQL客户端
    php接收二进制数据流转换成图片
    PHP中curl_setopt的CURLOPT系列 选项(转)
    二十五个顶级PHP模板
    设计模式——观察者模式 Observer
    设计模式——装饰者模式
    关于JS中的constructor与prototype
    解决JQuery和其他库共存
    json 基础知识
  • 原文地址:https://www.cnblogs.com/xujie09/p/7138162.html
Copyright © 2011-2022 走看看