1、构造方法和析构方法
def __init__(self, value = 42):
self.someValue = value
def __del__
2、调用未绑定的超类方法
1) 直接在子类方法中调用父类方法
def __init__(self):
Bird.__init__(self):
2) 使用super函数
__metaclass__=type # super函数只在新式类中起作用
def __init__(self):
super(Songbird, self).__(init)__()
3、基本的序列和映射规则
__len__(self): 返回集合中所含项目的数量
__getitem__(self.key):返回与所给键对应的值
__setitem__(self, key, value):按一定的方式存储和key相关的value
__delitem__(self,key):对比一部分对象操作时,必须删除和元素相关的键;对可修改对象操作时,并不是删除全部的对象,只是删除一些需要移除的元素
4、属性
(1)property 函数
__metaclass__=type
class Rectangle:
def __init__(self):
self.width = 0
self.height = 0
def setSize(self, size):
self.width, self.height = size
def getSize(self):
return self.width, self.height
size = property(getSize, setSize)
5、迭代器
__iter__ : 迭代器规则的基础
__iter__方法返回一个迭代器,所谓的迭代器就是具有next方法(这个方法在调用时不需要任何参数)的对象。在调用next方法时,迭代器会返回它的下一个值;如果迭代器被调用,但是迭代器没有值可以返回,就会引发一个StopIteration异常
class Fibs:
def __init__(self):
self.a = 0
self.b = 1
def next(self):
self.a, self.b = self.b, self.a+self.b
return self.a
def __iter__(self):
return self
#调用
fibs = Fibs()
for f in fibs:
print f
if f > 1000:
break
6、生成器
任何包含yield语句的函数成为生成器。每次产生一个值(使用yeild语句),函数就会被冻结:即函数停在那点等待被激活。函数被激活后就从停止的那里开始执行