所有類都是元類的物件
classfoo:
pass
print(type(foo)) #
定義類的2種方式:
1.第一種就是正常的用class來定義
2.
foo=type("foo",(object,),)
type的三個引數:
1.類名
2.繼承的類
3.類的屬性
下面來看自定義元類,自定義元類都得繼承type
classfoo1:
pass
class
type(type):
def__init__
(self,a,b,c):
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"
(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 一切皆物件,這句話你一定有聽說過 現在你就聽說了 乙個數字是物件,乙個字串是物件,乙個列表是物...