python - 如何使用 __str__ 更改对象属性的显示方式?

标签 python string class

我希望我的玩家的筹码必须显示为 $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)

最佳答案

您需要做的是取消缩进 __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)

关于python - 如何使用 __str__ 更改对象属性的显示方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54526906/

相关文章:

python - 分组并返回所有列

python - 如何使进程能够写入主程序的数组?

python - 更改 pandas 数据框的列类型 - 查找阻止转换的违规行

python - 正则表达式或用通配符替换()?

c++ - 关于通过 Get 和 Set 方法传递字符串

php - 如何在 PHP 中获取当前类的所有属性而不是其父类

c++ - 何时在抽象类 cpp 中声明 protected 字段

python - vim:符号查找错误:vim: undefined symbol :PyUnicodeUCS4_AsEncodedString

string - 如何将带有多个参数的单个字符串传递给 std::process::Command?

python - 已声明但未实例化的类变量