日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python get_len_Python类,特殊方法, __getitem__,__len__, __delitem__

發(fā)布時間:2024/7/23 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python get_len_Python类,特殊方法, __getitem__,__len__, __delitem__ 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

特殊函數(shù)一般以__methodname__的形式命名,如:__init__(構(gòu)造方法), __getitem__、 __setitem__(subscriptable所需method), __delitem__(del obj[key]所需method), __len__(len(…)所需method)等;

以下以什么都不做的Something類,結(jié)合lambda表達式,來說明這些特殊函數(shù);

>>> class Something:

... pass

...

>>> s = Something()

>>>s['key1']

Traceback (most recent call last):

File "", line 1, in

TypeError: 'Something' object is not subscriptable

與subscriptable相關(guān)的函數(shù)是 __getitem__、 __setitem__,顧名思義,兩者分別用于獲取和設(shè)置相應的key的值;

Something.__getitem__ = lambda self, key: key

__getitem__簡單的返回key;

>>> s['key1']

'key1'

>>> s[1]

1

>>> s[(1,2,3)]

(1, 2, 3)

注意:不可變類,都可以作為key;

>>> s[1] = 2

Traceback (most recent call last):

File "", line 1, in

TypeError: 'Something' object does not support item assignment

增加__setitem__方法,簡單的打印key-value對;

>>> Something.__setitem__ = lambda self, key, value: print(repr(key) + ":" + repr(value))

>>> s[1] = 33

1:33

>>> s[(1,2,3)] = "333"

(1, 2, 3):'333'

>>> del s[1]

Traceback (most recent call last):

File "", line 1, in

AttributeError: __delitem__

增加__delitem__方法,簡單打印

>>> Something.__delitem__ = lambda self, key : print(repr(key) + " is deleted")

>>> del s[23]

23 is deleted

>>> len(s)

Traceback (most recent call last):

File "", line 1, in

TypeError: object of type 'Something' has no len()

增加__len__方法,簡單返回1

>>> Something.__len__ = lambda self : 1

>>> len(s)

1

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的python get_len_Python类,特殊方法, __getitem__,__len__, __delitem__的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。