Python使用type動態建立類操作示例

2022-09-27 09:30:12 字數 1070 閱讀 8670

使用type動態建立類

動態語言和靜態語言最大的不同,就是函式和類的定義,不是編譯時定義的,而是執行時動態建立的。

下面看乙個例子:

# 定義乙個person類

class person(object):

def __init__(self):

pass

def say(self):

print('say hello')

p = person()

p.say() # 輸出 say hello

print(type(p)) # 輸出

print(type(person)) # 輸出

執行結果:

say hello

我們發現,type(person)輸出的是是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)) uhnmwjjpx# 通過type建立person類

p = person()

p.say() # 輸出 say hello

print(type(p)) # 輸出

print(type(person)) # 輸出 uhnmwjjpx'type'>

執行結果:

say hello

www.cppcns.comype'>

type函式動態建立類,需要傳入3個引數,分別是:

通過type()函式建立的類和直接寫class是完全一樣的,因為python直譯器遇到class定義時,僅僅是掃瞄一下class定義的語法,然後呼叫type()函式建立出class。

Python 使用 type 動態建立類的方法

在 python 中可以定義如下的乙個靜態類 class person def init self,name,age self.name name self.age age defwho self print f 我叫,今年歲了 print type person 執行結果 class type 我...

Python中type()詳解 動態建立類

眾所周知 type 函式可以檢視變數的型別 先看乙個簡單的列子來看一下type檢視變數型別 class animal pass a animal print type a print type animal 可以發現我定義的animal類本身的型別是 type 從 python 直譯器的角度來看,當...

Python中type()詳解 動態建立類

眾所周知 type 函式可以檢視變數的型別 先看乙個簡單的列子來看一下type檢視變數型別 class animal pass a animal print type a print type animal class main animal class type 可以發現我定義的animal類本身...