標籤:

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 |