您好,登錄后才能下訂單哦!
本文實例講述了Python使用type動態創建類操作。分享給大家供大家參考,具體如下:
使用type動態創建類
動態語言和靜態語言最大的不同,就是函數和類的定義,不是編譯時定義的,而是運行時動態創建的。
下面看一個例子:
# 定義一個Person類 class Person(object): def __init__(self): pass def say(self): print('say hello') p = Person() p.say() # 輸出 say hello print(type(p)) # 輸出 <class '__main__.Person'> print(type(Person)) # 輸出 <class 'type'>
運行結果:
say hello
<class '__main__.Person'>
<class 'type'>
我們發現,type(Person)
輸出的是<class 'type'>
是type類型。
type()
函數可以查看一個類型或變量的類型,Person是一個class(類),它的類型是type,而p是一個 Person的實例,它的類型是Person類。
我們說class(類)的定義是運行時動態創建的,而創建class(類)的方法就是使用type()
函數。
eg:
# 定義一個方法 def func(self, word='hello'): print('say %s' % word) Person = type('Person', (object,), dict(say=func)) # 通過type創建Person類 p = Person() p.say() # 輸出 say hello print(type(p)) # 輸出 <class '__main__.Person'> print(type(Person)) # 輸出 <class 'type'>
運行結果:
say hello
<class '__main__.Person'>
<class 'type'>
type函數動態創建類,需要傳入3個參數,分別是:
(obj,)
);通過type()
函數創建的類和直接寫class是完全一樣的,因為Python解釋器遇到class定義時,僅僅是掃描一下class定義的語法,然后調用type()函數創建出class。
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。