關於python3 0的類和型別的關係

2021-08-20 07:40:44 字數 1080 閱讀 5590

一句話,在python3.0中,類就是型別,型別就是類。

在python中,平常你認為的一些是內建函式的如list(),str()等,其實都是一些內建的類,也就是說,你在使用它的時候都是建立該類的例項。

python3.x所有的類都是新式類(隱式的繼承了object元類),新式類是相對於python2.x的經典類說的(顯示繼承object,也可以是新式類)。新式類有一些變化,今天主要說的是新式類中的類和型別

type()是什麼?

你可能會說是乙個內建的函式,返回引數的類(型)。

這麼說也對,也不對。

首先,對於經典類來說,它確實是內建的函式,用於返回型別,但在python3.x中,type()是乙個類,返回乙個例項,例項就是引數的類有點拗口,但就只能這麼表述。來看乙個例子。

class ex_cls:

pass

# 建立乙個類

instance = ex_cls()

# 乙個類的例項

# 當我們用type返回例項的型別的時候

print(type(instance))

# 輸出:

# 這就是型別既類

# 那麼對ex_cls求出型別呢?

print(type(ex_cls))

# 輸出:

# 這就是所有的type是乙個超級大的超類,其他的類都是他的子類

# 我們再求出type的型別呢

print(type(

type))

# 輸出:

# 頂級元類是object,也就是我們所說的所有的新式類都繼承自這個元類object

看懂了沒有,一句話,在新式類中,類就是型別,型別就是類

你用 isinstance()也是一樣的

isinstance(x_cls,object)

# 輸出:true

# 你用任意的類(資料結構)與object作比較,結果都是true

這就是新式類中關於類和型別的關係!類 = 型別

Python3 0和Python2 0的差異

一 print 從語句變為函式 原 print 1,2 3 改為 print 1,2 3 二 range 與 xrange 原 range 0,4 結果 是 列表 0,1,2,3 改為 list range 0,4 原 xrange 0,4 適用於 for 迴圈的變數控制 改為 range 0,4 ...

python 2 0 和python 3 0的區別

區別一 input功能會將使用者輸入的內容統一以 字串 來對待 python2中的raw input相當於python3當中的input,python3沒有raw input 區別二 python 2 的 print 被print 函式取代了 區別三 python3中 表示真除,表示取餘,結果取整 ...

Python3 0的新改動

這篇文章主要介紹了相比於python2.6,python3.0的新特性。更詳細的介紹請參見 python3.0的文件。common stumbling blocks 本段簡單的列出容易使人出錯的變動 初學者應該注意 old print the answer is 2 2 new print the ...