Python Money类无法按预期工作

时间:2017-04-29 14:11:59

标签: python

我在Python中使用Money类混淆了一些东西。在尝试打印时,我得到“100美元”。然后,要添加美元符号,我在第二个print语句中对其进行格式化。然后,为了结合这两个步骤,我创建了另一个函数来完成这两个步骤。但是,打印输出不会做我期望的格式化,这只是一步完成的'$ 100.00'。我是Python的新手,所以我不确定为什么会这样。

Class Week_Of_Meetings:
    def __init__(self):
        self.weekly_cost_in_dollars = Money(100, self.CURRENCY)

    def weekly_cost_in_dollars(self):
        return self.weekly_cost_in_dollars

    def weekly_cost_in_dollars_2(self):
        return self.weekly_cost_in_dollars.format('en_US')

然后我将该类导入另一个文件并尝试调用它:

wom = Week_Of_Meetings(meetings)
print(wom.weekly_cost_in_dollars)
print(wom.weekly_cost_in_dollars.format('en_US'))
print(wom.weekly_cost_in_dollars_2)

我得到了:

USD 100.00
$100.00
<bound method Week_Of_Meetings.weekly_cost_in_dollars_2 of 
    <model.week_of_meetings.Week_Of_Meetings instance at 0x10d3d7d40>>

1 个答案:

答案 0 :(得分:1)

def定义了一种方法;您正在定义其中两个:weekly_cost_in_dollarsweekly_cost_in_dollars_2然而,在__init__中,您使用普通值替换 weekly_cost_in_dollars。当您访问该普通值时,您显然可以直接.format。但是weekly_cost_in_dollars_2仍然是一个方法,一个函数,您需要调用它来获取其结果(wom.weekly_cost_in_dollars_2())。