Python的type()
函數主要有以下幾個功能:
type()
函數來獲取一個對象的類型,返回的結果是一個類型對象。例如,type(10)
返回<class 'int'>
,表示10是一個整數對象。print(type(10)) # <class 'int'>
print(type("hello")) # <class 'str'>
print(type([1, 2, 3])) # <class 'list'>
type()
函數來創建一個新的類型對象。通過傳入三個參數:類型名稱、基類(可以是多個基類的元組)和屬性字典,可以動態創建一個新的類。這種方式創建的類是動態類型,可以在運行時創建和修改。MyClass = type('MyClass', (object,), {'x': 1, 'y': 2}) # 創建一個名為MyClass的類,繼承自object,并有x和y兩個屬性
obj = MyClass() # 創建MyClass的實例
print(obj.x) # 1
print(obj.y) # 2
type()
函數和isinstance()
函數來判斷一個對象的類型是否為某個類或其子類。isinstance()
函數會返回一個布爾值,表示對象是否為指定類或其子類的實例。print(isinstance(10, int)) # True
print(isinstance(10, float)) # False
print(isinstance("hello", str)) # True
print(isinstance([1, 2, 3], list)) # True
type()
函數和callable()
函數來判斷一個對象是否可調用(即是否是函數)。callable()
函數會返回一個布爾值,表示對象是否可以被調用(即是否是函數或實現了__call__
方法的對象)。def my_func():
pass
print(type(my_func)) # <class 'function'>
print(callable(my_func)) # True
需要注意的是,type()
函數是內置函數,但是它也是一個類,可以被繼承。因此,type()
函數可以用于自定義元類的創建。