python中元類用法實(shí)例
本文實(shí)例講述了python中元類用法,分享給大家供大家參考。具體方法分析如下:
1.元類(metaclass)是用來創(chuàng)建類的類
2.type(object):返回一個(gè)對象的類型,與object.__class__的值相同,type(name,bases,dict):創(chuàng)建一個(gè)新的type類型,name就是新class的name,值存到__name__屬性中,bases是tuple類型,值會(huì)存到__bases__中,dict的值存到__dict__中
... a = 1
...
X = type('X', (object,), dict(a=1))
3.類默認(rèn)是用type()創(chuàng)建的,通過定義類時(shí)指定metaclass參數(shù)或繼承自某個(gè)類,而該類指定了metaclass參數(shù),可以自定義類的創(chuàng)建過程
#該方法返回值就是__new__的namespace參數(shù),如果沒有該方法namespace的值就是dict()
@classmethod
def __prepare__(metacls, name, bases, **kwds):
return collections.OrderedDict()
#namespace就是class的__dict__,這個(gè)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è)計(jì)有所幫助。
相關(guān)文章
Python模糊查詢本地文件夾去除文件后綴的實(shí)例(7行代碼)
下面小編就為大家?guī)硪黄狿ython模糊查詢本地文件夾去除文件后綴的實(shí)例(7行代碼) 。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
Python設(shè)計(jì)模式之狀態(tài)模式原理與用法詳解
這篇文章主要介紹了Python設(shè)計(jì)模式之狀態(tài)模式原理與用法,簡單描述了狀態(tài)模式的概念、原理并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)與使用狀態(tài)模式的相關(guān)操作技巧,需要的朋友可以參考下2019-01-01
Python實(shí)現(xiàn)的tcp端口檢測操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)的tcp端口檢測操作,結(jié)合實(shí)例形式分析了Python使用socket模塊實(shí)現(xiàn)tcp端口檢測功能的相關(guān)操作技巧,需要的朋友可以參考下2018-07-07
如何利用Python給自己的頭像加一個(gè)小國旗(小月餅)
這篇文章主要給大家介紹了關(guān)于如何利用Python給自己的頭像加一個(gè)小國旗(小月餅)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
TensorFlow實(shí)現(xiàn)簡單的CNN的方法
這篇文章主要介紹了TensorFlow實(shí)現(xiàn)簡單的CNN的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

