python中元類用法實例
本文實例講述了python中元類用法,分享給大家供大家參考。具體方法分析如下:
1.元類(metaclass)是用來創(chuàng)建類的類
2.type(object):返回一個對象的類型,與object.__class__的值相同,type(name,bases,dict):創(chuàng)建一個新的type類型,name就是新class的name,值存到__name__屬性中,bases是tuple類型,值會存到__bases__中,dict的值存到__dict__中
... a = 1
...
X = type('X', (object,), dict(a=1))
3.類默認(rèn)是用type()創(chuàng)建的,通過定義類時指定metaclass參數(shù)或繼承自某個類,而該類指定了metaclass參數(shù),可以自定義類的創(chuàng)建過程
#該方法返回值就是__new__的namespace參數(shù),如果沒有該方法namespace的值就是dict()
@classmethod
def __prepare__(metacls, name, bases, **kwds):
return collections.OrderedDict()
#namespace就是class的__dict__,這個dict類型的對象已經(jīng)被填充了相應(yīng)的值
def __new__(cls, name, bases, namespace, **kwds):
result = type.__new__(cls, name, bases, dict(namespace))
result.members = tuple(namespace)
return result
class A(metaclass=OrderedClass):
def one(self): pass
def two(self): pass
def three(self): pass
def four(self): pass
print(A.members)
#('__module__', '__qualname__', 'one', 'two', 'three', 'four')
希望本文所述對大家的Python程序設(shè)計有所幫助。
相關(guān)文章
PyQt中使用QProcess運行一個進(jìn)程的示例代碼
這篇文章主要介紹了在PyQt中使用QProcess運行一個進(jìn)程,本例中通過按下按鈕,啟動了windows系統(tǒng)自帶的記事本程序,即notepad.exe, 因為它在windows的系統(tǒng)目錄下,該目錄已經(jīng)加在了系統(tǒng)的PATH環(huán)境變量中,所以不需要特別指定路徑,需要的朋友可以參考下2022-12-12利用python將xml文件解析成html文件的實現(xiàn)方法
下面小編就為大家分享一篇利用python將xml文件解析成html文件的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12python random從集合中隨機(jī)選擇元素的方法
今天小編就為大家分享一篇python random從集合中隨機(jī)選擇元素的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01numpy中數(shù)組拼接、數(shù)組合并方法總結(jié)(append(),?concatenate,?hstack,?vstack
numpy庫是一個高效處理多維數(shù)組的工具,可以在進(jìn)行邊寫的數(shù)組計算上進(jìn)行一系列的操作,下面這篇文章主要給大家介紹了關(guān)于numpy中數(shù)組拼接、數(shù)組合并方法(append(),?concatenate,?hstack,?vstack,?column_stack,?row_stack,?np.r_,?np.c_等)的相關(guān)資料,需要的朋友可以參考下2022-08-08Python實現(xiàn)優(yōu)雅編寫LaTeX的示例代碼
LaTeX?是一種廣泛用于排版學(xué)術(shù)論文、報告、書籍和演示文稿的標(biāo)記語言,本文主要為大家詳細(xì)介紹了如何使用?Python?來優(yōu)雅地編寫?LaTeX,提高效率并減少錯誤,需要的可以參考下2024-02-02