4 回答

TA貢獻1884條經(jīng)驗 獲得超4個贊
我不建議一次性地了解所有 dunder names。
因為 Python 的 dunder names 用在無數(shù)的地方:語言級別的,庫級別的,通用的,特定模塊/類使用的,類級別的,模塊級別的。太繁多了!我建議你按類別去了解,見一個懂一類。比如運算符重載的,裝作 list / dict 添加行為的,descriptor,模塊導入相關的,類創(chuàng)建、管理和自身屬性,迭代和異步迭代,上下文管理,等等。
主要看你手頭的代碼和官方文檔,不懂的地方再 Google 一下,基本上就沒問題了。還有疑惑不解的地方,可以去翻翻源碼。Python 的源碼組織得很好的。

TA貢獻1820條經(jīng)驗 獲得超10個贊
我覺得沒有必要去刻意的了解python的魔法方法,想要pyhon進階的話,可以讀讀python源碼,一些常見的模塊等,在讀的過程中,肯定會經(jīng)常見到對python魔法方法的使用,看看源碼是如何使用的。思考作者為什么這么用,也許會更加有心得。不明白的話再去搜索引擎查查就行了。一家之言,僅供參考。

TA貢獻1796條經(jīng)驗 獲得超10個贊
如果想要對Python的魔術方法先有個粗略的認識,可以看rafekettler的這篇英文版博客
對于這篇英文博客,我看了幾遍,也嘗試了自己用中文來再講一遍,寫在了我的博客上。就當做我的一個廣告吧,但我是真心覺得我再加工的還蠻不錯的.
當然,即使看了上面的文章,也只能讓你知道這些魔術方法能夠做什么。實踐中還是需要多看優(yōu)秀的源碼,學習別人是怎么巧妙運用的。就跟你的Python代碼會越寫越來Pythonic一樣,魔術方法用著用著就會覺得很自然。
添加回答
舉報