一、特点
和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
 
 
 
 posted on 2017-07-08 21:53  徐杰  阅读(165)  评论(0编辑  收藏  举报