如何为类指定字符串表示形式

时间:2019-03-04 00:00:43

标签: python

假设我有

class A:

  @classmethod
  def __str__(cls): return 'A'

str(A)的目的是返回'A'

但是我却得到<class '__main__.A'>

当我定义__repr__时,也会发生同样的事情。

如何为类定义字符串表示形式?

我需要可以响应str(A)的内容,因为我无法控制通话。

1 个答案:

答案 0 :(得分:4)

您可以使用一个元类,该元类重写类对象__str__的基类的type方法:

class meta(type):
    def __str__(cls):
        return cls.__name__

class A(metaclass=meta):
    pass

print(str(A))

这将输出:

A
相关问题