gpt4 book ai didi

python - 更改类本身的字符串表示形式

转载 作者:行者123 更新时间:2023-11-30 22:46:01 24 4
gpt4 key购买 nike

让我举个例子:

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 .

关于python - 更改类本身的字符串表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41010092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com