【发布时间】:2015-08-15 14:36:52
【问题描述】:
我希望我的类有一个基于类变量(在派生类中可能不同)的字符串表示。 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 中实现它吗?
【问题讨论】:
-
旁注:PEP 8 建议每个缩进使用 4 个空格,而不是 2 个。作为一般规则,与几乎所有人一样做同样的事情会让生活更简单。我确实编辑了您的问题,以免让新手相信偏离标准建议是个好主意。
标签: python class python-3.x class-variables representation