使用元類的自定義功能
**** 可以更改**元類中的功能,**以便無論何時構建類,都會將字串列印到標準輸出,或者丟擲異常。此元類將列印正在構建的類的名稱。
class VerboseMetaclass(type):
def __new__(cls, class_name, class_parents, class_dict):
print("Creating class ", class_name)
new_class = super().__new__(cls, class_name, class_parents, class_dict)
return new_class
你可以像這樣使用元類:
class Spam(metaclass=VerboseMetaclass):
def eggs(self):
print("[insert example string here]")
s = Spam()
s.eggs()
標準輸出將是:
Creating class Spam
[insert example string here]