1
讓我打一個比方:更改類的字符串表示本身
class Test:
def __repr__(self):
return "hi"
這改變Test
類型對象的字符串表示,但不是Test
本身:
print(Test)
--> "<class 'Test'>"
是它有可能覆蓋類本身的字符串表示呢?
讓我打一個比方:更改類的字符串表示本身
class Test:
def __repr__(self):
return "hi"
這改變Test
類型對象的字符串表示,但不是Test
本身:
print(Test)
--> "<class 'Test'>"
是它有可能覆蓋類本身的字符串表示呢?
你需要使用元類:
class Meta(type):
def __repr__(self):
return "hi"
class Test(metaclass=Meta):
pass
print(Test)
>>> hi
的__repr__
方法適用於情況下不類。然而在python中,類本身就是元類type
的「實例」。因此,如果您使用自定義__repr__
方法創建自定義元類,則使用元類創建的所有類都將使用您的__repr__
方法。
更多閱讀meta classes。
有趣!我可以問你,你爲什麼需要這個? –
我使用解析的C頭文件生成ctypes.Structure實例。很高興看到生成的類型內有什麼。 – Stefan