【问题标题】:How can I use __str__ to change how an attribute of my objects shows up?如何使用 __str__ 更改对象属性的显示方式?
【发布时间】:2019-02-05 02:08:42
【问题描述】:

我希望我的玩家必须显示为 $xxx 的筹码,但要将筹码保留为 int。我尝试了下面的代码,但 str 部分只是灰色的。我做错了什么?

class Player:
    def __init__(self, name, gender, taunt, aggression, hand, chips):
        self.name = name
        self.gender = gender
        self.taunt = taunt
        self.aggression = aggression
        self.hand = hand
        self.chips = chips

        def __str__(self):
            return "${0}".format(self.chips)

【问题讨论】:

  • 灰色是什么意思?当您执行print(Player('','','','','',1)) 时会发生什么?

标签: python string class


【解决方案1】:

您需要做的是取消缩进 __str__ 函数,它会正常工作:

class Player:
    def __init__(self, name, gender, taunt, aggression, hand, chips):
        self.name = name
        self.gender = gender
        self.taunt = taunt
        self.aggression = aggression
        self.hand = hand
        self.chips = chips

    # Note the outdent of the function

    def __str__(self):
        return "${0}".format(self.chips)

【讨论】:

  • facepalm 我真傻。感谢您的帮助! :) 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多