是否可以更改类型函数行为?

Is it possible to change type function behavior?

我们可以通过在对象 class 中定义 __str__ 来改变 str(object) 函数的行为。 type 函数可以这样做吗?我只是好奇,none 用例。

尝试 __class__ 无效:

class A:
    def __class__(self):
        print(1)
        return "x"

obj = A()
print(type(obj))

它不会打印 1 或对 x 做任何事情。它只是像往常一样打印 <class '__main__.A'>

您可以使用元类执行此操作:


class Meta(type):
    def __repr__(cls):
        return "Fire"

class A(metaclass=Meta):
    pass

print(type(A()))
# Prints "Fire"