0
我想自定義的repr(x)
輸出一定的家庭類的實例x
。 (FWIW,這些類從long
繼承。)可以通過元類修改默認的repr行爲嗎?
我已經使用元類來控制這些類的其他方面。有沒有辦法將定製的repr
行爲作爲元類定義的一部分?
我想自定義的repr(x)
輸出一定的家庭類的實例x
。 (FWIW,這些類從long
繼承。)可以通過元類修改默認的repr行爲嗎?
我已經使用元類來控制這些類的其他方面。有沒有辦法將定製的repr
行爲作爲元類定義的一部分?
也許你正在尋找的東西,如:
class Meta(type):
def __new__(cls, clsname, clsbase, clsdict):
newcls = super().__new__(cls, clsname, clsbase, clsdict)
def custom_repr(self):
return '{}, Custom __repr__'.format(clsname)
newcls.__repr__ = custom_repr
return newcls
class Foo(metaclass=Meta):
pass
Python的2.X:
class Meta(type):
def __new__(cls, clsname, clsbase, clsdict):
newcls = super(Meta, cls).__new__(cls, clsname, clsbase, clsdict)
def custom_repr(self):
return '{}, Custom __repr__'.format(clsname)
newcls.__repr__ = custom_repr
return newcls
class Foo(object):
__metaclass__ = Meta
例如:
>>> Foo()
Foo, Custom __repr__
>>>
難道他們從元類繼承第一,或' long'? – jonrsharpe
「啞」問題,你試過def __ repr __(沒有空格)嗎? –