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

歡迎訪問 生活随笔!

生活随笔

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

python

python的userlist_Python中UserDict、UserString、UserList有用吗?

發布時間:2024/9/19 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的userlist_Python中UserDict、UserString、UserList有用吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個繼承Python內建結構的坑兒。從Python 2.2開始,Python支持繼承Python內建結構,如list、dict。為了簡化項目內容,直接繼承了dict,但是結果和預期不一樣。現在來好好研究研究:

舉個例子:In?:?class?NewDict(dict):

...:?????def?__getitem__(self,?key):

...:?????????return?42

...:

In?:?d?=?NewDict(a=1)

In?:?d

Out:?{'a':?42}

In?:?d2?=?{}

In?:?d2.update(d)

In?:?d2

Out:?{'a':?1}

也就是說NewDict的__getitem__方法被dict.update給忽略了。In?:?from?UserDict?import?UserDict

In?:?class?NewDict(UserDict):

...:?????def?__getitem__(self,?key):

...:?????????return?42

...:

In?:?d?=?NewDict(a=1)

In?:?d['b']?=2

In?:?d

Out:?{'a':?1,?'b':?2}

In?:?d['b']

Out:?42

In?:?d2?=?{}

In?:?d2.update(d)

In?:?d2

Out:?{'a':?42,?'b':?42}

這才是對的呀。

后來在PyPy的文檔中發現了原因,也就是這種C實現的結構的內建方法大部分會忽略重載的那個方法。

之前以為UserDict這樣的類是歷史遺留問題,現在才知道是有原因的。原來UserDict、UserString、UserList這樣的模塊是非常必要的。

總結

以上是生活随笔為你收集整理的python的userlist_Python中UserDict、UserString、UserList有用吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。