程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python魔法方法(8):__len __(self) 方法

編輯:Python

Python 的對象天生擁有一些神奇的方法,它們總被雙下劃線所包圍,它們是面向對象的 Python 的一切。它們是可以給你的類增加魔力的特殊方法,如果你的對象實現(重載)了某一個魔法方法,那麼這個方法就會在特殊的情況下自動被 Python 所調用。

功能

定義對象被 len() 函數調用時的行為。

參數

self 表示對象本身。

返回值

必須是一個整數,否則會拋出異常。

示例

class MyTest(object):
def __init__(self):
self.name = 'ab'
self.age = 22
def __len__(self):
# len() 函數一般返回對象(序列)的長度或元素個數
return len(self.__dict__)
sample = MyTest()
print(len(sample))
如果一個類表現得像一個list,要獲取有多少個元素,就得用 len() 函數。
要讓 len() 函數工作正常,類必須提供一個特殊方法__len__(),它返回元素的個數。
示例
class Students(object):
def __init__(self, *args):
self.names = args
def __len__(self):
return len(self.names)
s = Students('a', 'b', 'c')
print(len(s))

len()和__len__()的區別

1.用法:len(filename),filename.__len__()。

2.返回:len()返回所傳入參數的長度;如果沒有對__len__()的返回值自定義,則返回輸入參數的長度,否則返回自定義的對象。

3.區別:len()是函數,__len__()是方法,如果沒有對__len__()的返回值自定義,則返回輸入參數的長度。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved