元類的描述

2022-08-20 07:42:11 字數 1006 閱讀 2982

所有類都是元類的物件

class

foo:

pass

print(type(foo)) #

定義類的2種方式:

1.第一種就是正常的用class來定義

2.

foo=type("

foo",(object,),)

type的三個引數:

1.類名

2.繼承的類

3.類的屬性

下面來看自定義元類,自定義元類都得繼承type

class

foo1:

pass

class

type(type):

def__init__

(self,a,b,c):

print("

我是元類")

print

(a)

print(b) #

self繼承的父類

print(c) #

self.__dict__

def__call__(self, *args, **kwargs):

res=object.__new__(self) #

self=foo object.__new__(self)==>foo()

self.__init__(res,*args,**kwargs)

return

resclass foo(foo1,metaclass=type,): #

foo=type(foo,"foo",(),{})

def__init__

(self,name):

self.name=name

deftest(self):

pass

f=foo("w"

)print

(f.name)

print(foo.__dict__)

執行foo()就是執行type中的__call__方法

python 元類與資料描述符

學習完了python中元類程式設計與資料描述符一章節,寫乙個demo記錄學習成果。下面是乙個簡單的orm模型。資料描述符還算是可以理解。就元類傳遞引數有 init new 以及 prepare。理解 首先了解基本原理 new 方法的返回值就是類的例項物件,這個例項物件會傳遞給init方法中定義的 s...

元類,自定製元類的內容

元類的概念 元類是類的類,是類的模板 元類是用來控制如何建立類的,正如類是建立物件的模板一樣 元類的例項是類,正如類的例項為物件 type是python的乙個內建元類,用來直接控制生成類,python中class定義的類其實都是type類例項化的物件 產生類的兩種方式 類的產生有兩種方式,這兩種方式...

python元類的使用 Python的元類如何使用

這次給大家帶來python的元類如何使用,使用python元類的注意事項有哪些,下面就是實戰案例,一起來看一下。今天我的任務就是徹底明白什麼是元類,一起看看。要搞懂元類,我們還是先從物件說起。python 一切皆物件,這句話你一定有聽說過 現在你就聽說了 乙個數字是物件,乙個字串是物件,乙個列表是物...