python類與物件之type和object

2022-09-23 03:11:56 字數 1119 閱讀 7902

都說python中一切皆物件,我在學python時,總有一些小疑惑,不搞清簡直如鯁在喉。

怎麼理解 a = 1 ?

我總結了一下:

a是一個變數名為a的變數,指向計算機中的一片記憶體,記憶體中儲存的值是1。那1是什麼呢?

1是int的一個例項化物件,int是1的型別。那int是什麼呢?

int是type的一個例項化物件,而type是int的型別。那type是什麼呢?

type的型別還是type,繼承自基類object,是object的一個子類。那object是什麼呢?

object是所有類的基類。由於一切皆物件的真理存在,object又是type的一個例項化物件,type是object的型別。

這就有點呵呵了。。。

type是object的子類,而object卻是type的例項。從而不難理解type的型別還是type,因為object的型別是type。

其實,type是python的元類,type元類建立了所有的類,包括它自己。

那type具體是怎麼建立其他類的呢?

type()函式根據傳入引數的不同,有不同的功能。

給它傳入個類名,元組父類,字典屬性和方法,它就能建立一個類了。

既然python中一切皆物件,那麼函式呢?

在現在的python中,型別和類其實是一個東西了。

既然函式test是function型別的,那麼function就是個類,test是function類的例項化物件。

如果真是如此,那type(function)的結果應該是type。

實際情況是,function根本就沒定義。這就奇怪了呀!望知之者告知。

未完待續。。。

python的type和object

在python中一切皆物件,這是個用python的人都知道的概念,以int舉例,比如a 2,type下 發現他的type是int,在python中type就是類,所以a是類int的一個物件,例項是類的物件,這個很好理解,那麼類呢,類是物件嗎?那是肯定的 可以看到,int是type的一個物件,再往上看...