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

一、特点
和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
 
 
 

转载于:https://www.cnblogs.com/xujie09/p/7138162.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值