Python世界的神:metaclass
參考:What is a metaclass in Python?
1.在python中,class和別的語言的class有什麼不一樣?
別的語言中,class只是對對象的描述而已,而在python中,class本身是一個object(instance)。
只要你用了class定義了一個類,那麼python解釋器會創建一個object。
類似的,在def function的時候,python解釋器也會創建一個object。
2.所以如果class也是object的話,那麼class就和function一樣,是first-class object了?
是這樣的。Metaclass - Wikipedia
class和function都是object,這給python帶來了巨大的靈活性。
3.既然class是object,那就可以像其他object一樣創建了?
前方高能!
還可以更動態的創建:
4.type是什麼?竟然有創造類的能力?是神嗎?
type是python默認的metaclass。
metaclass就是python里的神,是造物主。
metaclass創造了class,class又創造了instance。
5.既然type是個類,為什麼不大寫首字母呢?
造物主很低調的哈。type看起來很普通,卻是這個世界的神。
6.什麼給python帶來了巨大的靈活性?
所有的東西都是object。
7.多神的世界?
type是python默認的metaclass,實際上,你可以自己造出其它的神。
8. 創造神
9.哪些場景需要用到神的力量?
django model
abc: abc - Abstract Base Classes
10.我應該動用神的力量嗎?
推薦閱讀:
※python爬蟲抓下來的網頁,中間的中文亂碼怎麼解決?
※深入淺出區塊鏈(1)介紹
※Python · 樸素貝葉斯(三)· GaussianNB
※使用Python實現一個文本自動摘要工具
TAG:Python |