假设我有
class A:
@classmethod
def __str__(cls): return 'A'
str(A)
的目的是返回'A'
。
但是我却得到<class '__main__.A'>
。
当我定义__repr__
时,也会发生同样的事情。
如何为类定义字符串表示形式?
我需要可以响应str(A)
的内容,因为我无法控制通话。
答案 0 :(得分:4)
您可以使用一个元类,该元类重写类对象__str__
的基类的type
方法:
class meta(type):
def __str__(cls):
return cls.__name__
class A(metaclass=meta):
pass
print(str(A))
这将输出:
A