我有以下课程:
class Enum(RootFragment):
def __init__(self, column, packageName, name, modifiers=["public"], enumValues=[]):
RootFragment.__init__(self, packageName, name, modifiers, "enum")
self.column = column
self.enumValues = []
map(self.addEnumValue, enumValues)
... more methods
现在,我创建了许多放入dict中的Enum实例。这是打印在print collidingEnums
上的内容:
现在因为<Enum instance at 0x0998F080>
不是很有用,我想在每个实例上调用getName
方法。我试着:
print ", ".join(map(Enum.getName, collidingEnums.items())),
但这给了我一个错误说:
TypeError: unbound method getName() must be called with Enum instance as first argument (got tuple instance instead)
呃?在这里如何调用getName
方法?有可能吗?在
您正在调用元组上的方法。如果你使用正在碰撞Enums.itervalues,您将拥有枚举对象的生成器。在
如果您为
Enum
类提供__repr__
方法,那么它将打印您想要的任何内容,而不是<Enum instance at 0x0998F080>
不要使用
map
。请改用生成器表达式:或者,您可以简单地为您的
^{pr2}$Enum
类定义自己的__repr__
方法,这是Python用来确定如果您只是尝试打印该类时打印出的内容。在相关问题 更多 >
编程相关推荐