魔法方法 | 集合方法 |
---|---|
__len(self)__(self) | len(a) |
__getitem__(self,key) | a[i]取值 |
__setitem__(self,key) | a[i]賦值 |
__delitem__(self,key) | del a[i] 刪除 |
class Rectangle(object): def __init__(self): self.width=0 self.heigth=0 def setSize(self, size): self.width, self.heigth = size def getSize(self): return self.width, self.heigth size = property(getSize,setSize) r = Rectangle() r.width=1 r.heigth=3 print r.getSize() print r.size r.size=99,44 print r.getSize() print r.size
類成員方法:Classmethod修飾,python
迭代器: 實現了next方法的對象是迭代器函數
__iter__:返回一個迭代器,inter方法也能夠反悔迭代器學習
迭代器可用於for語句和list函數spa
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: if f > 1000: print f break ------ 1597
def flatten(nested): for sublist in nested: for element in sublist: yield element nested=[[1,2],[3,4],[5]] for num in flatten(nested): print num print list(flatten(nested)) it=flatten(nested) print it.next() ------------ 1 2 3 4 5 [1, 2, 3, 4, 5] 1