溫馨提示×

python type函數(shù)的功能有哪些

小億
180
2023-09-05 22:40:44
欄目: 編程語言

Python的type()函數(shù)主要有以下幾個功能:

  1. 獲取對象的類型:可以用type()函數(shù)來獲取一個對象的類型,返回的結(jié)果是一個類型對象。例如,type(10)返回<class 'int'>,表示10是一個整數(shù)對象。
print(type(10))  # <class 'int'>
print(type("hello"))  # <class 'str'>
print(type([1, 2, 3]))  # <class 'list'>
  1. 創(chuàng)建對象的類型:可以用type()函數(shù)來創(chuàng)建一個新的類型對象。通過傳入三個參數(shù):類型名稱、基類(可以是多個基類的元組)和屬性字典,可以動態(tài)創(chuàng)建一個新的類。這種方式創(chuàng)建的類是動態(tài)類型,可以在運行時創(chuàng)建和修改。
MyClass = type('MyClass', (object,), {'x': 1, 'y': 2})  # 創(chuàng)建一個名為MyClass的類,繼承自object,并有x和y兩個屬性
obj = MyClass()  # 創(chuàng)建MyClass的實例
print(obj.x)  # 1
print(obj.y)  # 2
  1. 判斷對象的類型是否符合預(yù)期:可以用type()函數(shù)和isinstance()函數(shù)來判斷一個對象的類型是否為某個類或其子類。isinstance()函數(shù)會返回一個布爾值,表示對象是否為指定類或其子類的實例。
print(isinstance(10, int))  # True
print(isinstance(10, float))  # False
print(isinstance("hello", str))  # True
print(isinstance([1, 2, 3], list))  # True
  1. 判斷對象是否是函數(shù):可以用type()函數(shù)和callable()函數(shù)來判斷一個對象是否可調(diào)用(即是否是函數(shù))。callable()函數(shù)會返回一個布爾值,表示對象是否可以被調(diào)用(即是否是函數(shù)或?qū)崿F(xiàn)了__call__方法的對象)。
def my_func():
pass
print(type(my_func))  # <class 'function'>
print(callable(my_func))  # True

需要注意的是,type()函數(shù)是內(nèi)置函數(shù),但是它也是一個類,可以被繼承。因此,type()函數(shù)可以用于自定義元類的創(chuàng)建。

0