python中負數怎么用len?
首先__len__()的作用是返回容器中元素的個數,要想使len()函數成功執行,必須要在類中定義__len__()。而len()的執行指的是在命令窗口輸入len(),而在程序中一般情況下即使不定義__len__()程序中的len()函數也能成功執行。個人認為其實二者并沒有多大差別,主要還是看在命令窗口的行為,你是輸入的是len(對象)還是len(對象.屬性)。
以上程序的類中定義了__len__()函數,*args是可變長度的參數,它接收到數據后打包成元組,再利用for循環將數據傳遞給列表。當在命令窗口寫入len(c1)時,由于定義的__len__()的返回值是返回具體的實例對象的列表長度,所以在命令窗口直接輸入len(c1)就可以輸出列表的長度。
如果沒有定義__len__(),那在命令窗口輸入len(c1)會提示出錯,顯然錯誤原因是因為CountList類中并沒有len()的定義。因為len()必須接收一個具體的實例化對象的屬性,如果改成len(c1.values)也能成功執行!對于類而言,len()函數是沒有辦法直接計算類的長度的,因為在類中包含著眾多的屬性以及方法,是一種抽象的實體。如果在類中沒有定義__len__()方法來指明程序到底該計算哪個屬性的長度時,在終端我們必須采用len(對象.屬性)才能得到我們想要的結果。如果終端直接采用len(對象)的方法,顯然程序會報錯,提示類并沒有len()方法