欲对Python的magic method 做深入了解, 哪些资料比较好( 官方文档以及一些网上文章都感觉没有讲透 )
高洛峰
高洛峰 2017-04-18 10:06:32
0
4
842

2016/12/19

描述

我感觉magic method 是python的进阶主题之一

有时候遇到, 感觉自己能看懂, 但是实际上不清楚其执行流程

官网文档看了一遍, 感觉不过瘾, 是否有更好的资料呢?

  • 目的是什么

1. 对magic method做深入了解
2. 起码自己能用上

上下文环境

  • 产品版本: Python2.7.x

  • 操作系统: Linux

  • magic method: 类似__getattr__这一类的, python里面很多, 各有不同作用

尝试解决

  • what is python magic method?

  • python magic method advanced

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(4)
PHPzhong

我不建議一次性地了解所有 dunder names。

因為 Python 的 dunder names 用在無數的地方:語言層級的,函式庫層級的,通用的,特定模組/類別使用的,類別層級的,模組層級的。太繁多了!我建議你按類別去了解,見一個懂一類。例如運算子重載的,裝作 list / dict 添加行為的,descriptor,模組導入相關的,類別創建、管理和自身屬性,迭代和非同步迭代,上下文管理,等等。

主要看你手邊的程式碼和官方文檔,不懂的地方再 Google 一下,基本上就沒問題了。還有疑惑不解的地方,可以去翻翻源碼。 Python 的原始碼組織得很好的。

大家讲道理

我覺得沒有必要去刻意的了解python的魔法方法,想要pyhon進階的話,可以讀讀python源碼,一些常見的模組等,在讀的過程中,肯定會經常見到對python魔法方法的使用,看看原始碼是如何使用的。思考作者為什麼這麼用,也許會更有心得。不懂的話再去搜尋引擎查查就行了。一家之言,僅供參考。

大家讲道理

如果想要對Python的魔術方法先有個粗略的認識,可以看rafekettler的這篇英文版博客

對於這篇英文博客,我看了幾遍,也嘗試了自己用中文來再講一遍,寫在了我的博客上。就當做我的一個廣告吧,但我是真心覺得我再加工的還蠻不錯的.

當然,即使看了上面的文章,也只能讓你知道這些魔術方法能夠做什麼。實務上還是需要多看優秀的源碼,學習別人是怎麼巧妙運用的。就跟你的Python程式碼會越寫越來Pythonic一樣,魔術方法用著用就會覺得很自然。

迷茫

Python 魔法方法指南

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板