len如果一個類別表現得像一個list,要取得有多少個元素,就得用 len() 函數。要讓 len() 函數運作正常,類別必須提供一個特殊方法len(),它會傳回元素的數量。
例如,我們寫一個 Students 類,把名字傳進去:
class Students(object): def init(self, *args): self.names = args def len(self): return len(self.names)
只要正確實作了len()方法,就可以用len()函數傳回Students實例的「長度」:
>>> ss = Students('Bob', 'Alice', 'Tim')>>> print len(ss)3
任務
斐波那契數列是由 0, 1, 1, 2, 3, 5, 8...構成。
請寫一個Fib類,Fib(10)表示數列的前10個元素,print Fib(10) 可以列印出數列的前 10 個元素,len(Fib(10))可以正確地傳回數列的個數10。
需要根據num計算斐波那契數列的前N個元素。
參考代碼:
class Fib(object): def init(self, num): a, b, L = 0, 1, [] for n in range(num): L.append(a) a, b = b, a + b self.numbers = L def str(self): return str(self.numbers) repr = str def len(self): return len(self.numbers) f = Fib(10)print fprint len(f)
list只能透過append 和 insert來插入元素! ! !
【相關推薦】
#4. Python魔術方法__getitem__、__setitem__、__delitem__、__len__分別介紹
以上是深入了解python中的特殊函數 __len__(self)的詳細內容。更多資訊請關注PHP中文網其他相關文章!