Python高階篇 建立類的方法

2021-10-05 22:41:38 字數 1644 閱讀 7823

首先我們先來了解乙個概念,什麼是元類

我們建立乙個類目的是為了建立該類的例項物件,而元類就是用來建立類的。換個理解方式就是,元類就是建立類的類。

python中建立類的方法有很多,接下來讓我們一起來探索一下吧。

第一種:使用class關鍵字建立類

class

demo

:def

__init__

(self)

:pass

deftest

(self)

:pass

第二種:使用type關鍵字

import types

def__init__

(self)

:pass

deftest

(self)

:pass

cls_dict =

demo = types.new_class(

'demo',(

),,lambda ns: ns.update(cls_dict)

)demo.__module__ = __name__

這裡我們重點來看一下new_clas的引數, 第二個引數是基類,這個就不用在說了, 第三個引數是乙個關鍵字引數,比如需要遠元類的時候, metaclass = ***, 就可以放在第三個引數裡,

第四個引數是最神秘的,其實這個引數是__prepare__ 方法返回的物件,prepare__做什麼,什麼時候被呼叫? 這個方法的作用是建立命名空間,並且返回乙個類字典,然後在類新增屬性的時候,這個字典可以被更新。什麼時候被呼叫,元類的最開始,早於__new和__init__ 這兩個方法。其實type是python中所有類的元類

第三種:自定義元類來建立類

from collections import ordereddict

class

orderedmeta

(type):

def__new__

(cls, clsname, bases, clsdict)

: d =

dict

(clsdict)

order =

for name, value in clsdict.items():

ifisinstance

(value, typed)

: value._name = name

d['_order'

]= order

return

type

.__new__(cls, clsname, bases, d)

@classmethod

def__prepare__

(cls, name, bases)

:return ordereddict(

)class

structure

(metaclass=orderedmeta)

:print

("this is structure."

)

上邊的元類的作用就是按順序捕捉類屬性的定義。

好了,今天就到這裡,關於元類還有很多很多的東西。留給大家去探索了。

Python高階篇 python之函式的類的方法

類的成員可以分為三大類 字段 方法和屬性 注 所有成員中,只有普通欄位的內容儲存物件中,即 根據此類建立了多少物件,在記憶體中就有多少個普通字段。而其他的成員,則都是儲存在類中,即 無論物件的多少,在記憶體中只建立乙份。一 字段 字段包括 普通欄位和靜態字段,他們在定義和使用中有所區別,而 最本質的...

python練習 高階篇)

1 求1 2 3 4 5 99的和 count 1 s1 0 s2 0 while count 100 if count 2 0 s1 count else s2 count count 1 s s1 s2 print s 2 用python編寫程式,輸入一年份,判斷該年份是否是閏年並輸出結果 注 ...

Python 高階專用類方法的例項詳解

python 高階專用類方法的例項詳解 除了 getitem 和 setitem 之外 python 還有更多的專用函式。某些可以讓你模擬出你甚至可能不知道的功能。下面的例子將展示 userdict 一些其他專用方法。def repr self return repr self.data 1 def...