【问题标题】:Unsupported operand type method + method [closed]不支持的操作数类型方法+方法[关闭]
【发布时间】:2020-06-09 08:54:06
【问题描述】:

我实际上已经找到了解决我的问题的方法,但我觉得好像还有更好的方法。我似乎无法理解为什么程序认为我在处理 method 而不是 float

如果我尝试运行该程序,它表示我正在尝试将两个方法相加。但是,当我运行该行时:

print(type(my.coins.add_coins()))

它告诉我它返回了一个浮点数

代码如下:

class Currency:
    def __init__(self, pennies, nickles, dimes, quarters):
        self.pennies = pennies
        self.nickles = nickles
        self.dimes = dimes
        self.quarters = quarters

    def penny_value(self):
        return self.pennies * .01

    def nickle_value(self):
        return self.nickles * .05

    def dime_value(self):
        return self.dimes * .1

    def quarter_value(self):
        return self.quarters * .25

    def add_coins(self):
        return self.penny_value + self.nickle_value + self.dime_value + self.quarter_value

my_coins = Currency(1, 1, 1, 1)



#why does this work?
print(my_coins.penny_value() + my_coins.nickle_value())

#but not this?
print(my_coins.add_coins())

【问题讨论】:

  • penny_value 不是penny_value()...
  • 耶稣....我觉得自己很笨。感谢您的帮助。

标签: python class methods typeerror


【解决方案1】:

因为您正在对函数求和;这是你想要做的:

def add_coins(self):
    return self.penny_value() + self.nickle_value() + self.dime_value() + self.quarter_value()

【讨论】:

  • 谢谢!我为此感到愚蠢。但我感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
  • 2017-05-12
  • 1970-01-01
  • 2020-10-02
  • 2014-10-14
  • 2015-03-27
相关资源
最近更新 更多