新型类: class NewStyle(object) : 或者 __metaclass__ = type class Style:
构造函数: __init__(self)
子类的构造函数中调用父类的构造函数:
调用未绑定的超类构造方法:调用实例的方法时,该方法的self参数被自动绑定到实例上(称为绑定方法),若调用类的方法,就没有实例会被绑定,这样可以自由的提供self参数(称为未绑定方法)。
class SongBird(Bird):
def __init__(self):
Bird.__init__(self)// 调用未绑定的超类构造方法
self.sound = 'ding'
def sing(self):
print self.sound
使用super函数:
class SongBird(Bird):
def __init__(self):
super(SongBird, self).__init__()
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)
>>>r = Rectangle()
>>>r.width = 10
>>>r.height = 5
>>>r.size
>>>(10, 5)
>>>r.size = 150, 100
>>>r.width
150
静态方法和类成员方法:
在方法前加上 @staticmethod 是静态方法 加上@classmethod 是类成员方法,类成员方法定义时需要名为cls的类似于self的参数。
迭代器:具有next方法的对象
生成器:任何包含yield语句的函数称为生成器。