1、給class繫結屬性:方便所有物件使用
2、使用__slote__
變數:限制繫結屬性
__slots__ = ('name', 'age')
- 用tuple定義允許繫結的屬性名稱
子類例項允許定義的屬性就是自身的__slots__
加上父類的__slots__
3、@property
class
student
(object):
@property
defbirth
(self):
return self._birth
@birth.setter
defbirth
(self, value):
self._birth = value
@property
defage
(self):
return
2015 - self._birth
4、__str__
class
student
(object):
def__init__
(self, name):
self.name = name
def__str__
(self):
return
'student object (name=%s)' % self.name
__repr__ = __str__
s = student(「liuos」)
輸出結果:student object (name=liuos)
5、__iter__
如果乙個類想被用於for … in迴圈,類似list或tuple那樣,就必須實現乙個iter()方法,該方法返回乙個迭代物件
class
fib(object):
def__init__
(self):
self.a, self.b = 0, 1
# 初始化兩個計數器a,b
def__iter__
(self):
return self # 例項本身就是迭代物件,故返回自己
def__next__
(self):
self.a, self.b = self.b, self.a + self.b # 計算下乙個值
if self.a > 100000: # 退出迴圈的條件
raise stopiteration()
return self.a # 返回下乙個值
6、__getitem__
class
fib(object):
def__getitem__
(self, n):
a, b = 1, 1
for x in range(n):
a, b = b, a + b
return a
Python之高階函式
一 什麼是高階函式 函式作為實參傳遞給函式的或者函式名為返回值的函式稱為高階函式。1 實參傳遞給函式 2 函式名為返回值 二 系統內建的高階函式 1 map函式 至少需要兩個引數,第乙個引數是函式名,第二個引數是序列 str,list,tuple map功能 把序列中的每乙個元素作為引數,傳給函式進...
Python之高階函式
做過swift開發的童鞋都知道,在swift中有許多的高階函式 map,filter,reduce,zip等 這些在開發中讓我們節省大量 python中同樣有許多的內建函式,但是這裡也只介紹幾個常用的高階函式 根據提供的函式對指定序列做對映,並返回對映後的序列 map function,iterab...
python之高階函式
函式程式設計及其優勢 無 不修改狀態,表示式形式,專注與計算,接近自然語言。便於 熱公升級,無狀態不用考慮併發過程中的資源搶占及鎖問題。函式也是物件,也可以賦值給變數,當然函式的引數也可以為另一函式。map 是 python 內建的高階函式,它接收乙個函式 f 和乙個 list,並通過把函式 f 依...