Python中如何自定义类实例的字符串表示输出内容?
你需要重写Bee类的__str__魔法方法,这个是Python的内置特殊方法,当对实例调用str()函数、或者直接用print()输出实例时,会自动执行该方法,将返回的字符串作为最终输出内容。
你之前写的get_hive方法的逻辑完全正确,只需要把方法名修改为__str__即可,不需要额外在创建实例时做其他操作。
修改后的完整代码如下:
class Bee(): def __init__(self, name, identifier): self.name = name self.identifier = identifier def __str__(self): return '{} {}'.format(self.identifier, self.name) bee = Bee(name='Bumble', identifier=1) print(str(bee))
运行后输出结果为:1 Bumble,符合你的预期。
如果你同时希望在交互式环境中直接输入实例变量名查看内容时也显示同样的格式,可以同步重写__repr__方法:
class Bee(): def __init__(self, name, identifier): self.name = name self.identifier = identifier def __str__(self): return '{} {}'.format(self.identifier, self.name) def __repr__(self): # 直接复用__str__的逻辑即可 return self.__str__()
内容的提问来源于stack exchange,提问作者NoName
相关产品推荐
相关产品推荐

