深入了解python中的特殊函數 __len__(self)

零下一度
發布: 2017-05-23 14:49:32
原創
2839 人瀏覽過

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來插入元素! ! !

【相關推薦】

1. 總結Python中len()函數的使用實例

2. 必須掌握的小知識--Python len實例詳解

3. python專用類別方法所使用的實例教學

#4. Python魔術方法__getitem__、__setitem__、__delitem__、__len__分別介紹

以上是深入了解python中的特殊函數 __len__(self)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板