在 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 型別,類也是物件(屬於元類的物件)。
而在 python 內建的函式之中,type() 除了可以返回某個物件的型別,還能動態建立類:
type(類名,由父類名稱組成的元組(可以為空),包含屬性的字典(名稱和值))tips:在沒有繼承和定義屬性方法的時候,需要保留引數:type(類名, (), {})
class
person
:def
__init__
(self, name, age)
: self.name = name
self.age = age
defwho(self)
:print
(f'我叫,今年歲了'
)def
identity
(self)
:print
(f'我叫,我是一名學生'
)student =
type
('student'
,(person,),
)stu = student(
'張三',18
)print
(stu.gender)
stu.who(
)stu.identity(
)
執行結果:
我是一枚男生
我叫張三,今年18歲了
我叫張三,我是一名學生
Python使用type動態建立類操作示例
使用type動態建立類 動態語言和靜態語言最大的不同,就是函式和類的定義,不是編譯時定義的,而是執行時動態建立的。下面看乙個例子 定義乙個person類 class person object def init self pass def say self print say hello p per...
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類本身...