我在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>>
答案 0 :(得分:1)
def
定义了一种方法;您正在定义其中两个:weekly_cost_in_dollars
和weekly_cost_in_dollars_2
。 然而,在__init__
中,您使用普通值替换 weekly_cost_in_dollars
。当您访问该普通值时,您显然可以直接.format
。但是weekly_cost_in_dollars_2
仍然是一个方法,一个函数,您需要调用它来获取其结果(wom.weekly_cost_in_dollars_2()
)。