我希望我的类有一个基于类变量的字符串表示(在派生类中可能不同)。 This answer建议元类可能是要走的路:
class MC(type):
def __repr__(self):
return 'Wahaha!'
class C():
__metaclass__ = MC
print(C)
但这在 Python 3 中不起作用,返回
<class '__main__.C'>
而不是 Wahaha!
。
有人可以向我解释 Python 2 和 3 之间发生了什么变化,以及如何在 Python 3 中进行处理吗?
最佳答案
改变的是元类在 3.x 中的声明方式。
class C(metaclass=MC):
pass
关于python - Python 3 中类的字符串表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30585295/