python - TypeError:“CurrencyConverter”对象不可调用
问题描述
我正在尝试创建一个货币转换器并遇到了这个问题。不太确定我需要做什么才能克服它。我把所有的代码都放在这里是因为我根本不知道去哪里找问题。我是新手,因此非常感谢提供的任何帮助。
from tkinter import *
from currency_converter import CurrencyConverter
global c
c = CurrencyConverter()
#test converter
# result = c.convert(100, 'USD', 'HKD')
# print(result)
#create window
root = Tk()
root.title("EZ Currency Converter")
root.geometry("350x200")
#create currency option list
currencies = ["USD","EUR","JPY", "GBP","AUD", "CAD", "CHF","HKD","SGD", "MXN",
"SEK", "PHP", "RUB", "HUF","LTL","MTL", "PLN", "ROL", "SIT", "SKK",
]
def conversion(clicked, second_clicked, currency_amount):
result= c(currency_amount, clicked, second_clicked)
final_conversion = Label(root, text= result)
final_conversion.grid(row=4, column=1, columnspan=2)
#Set what kind of variable to expect
clicked = StringVar()
clicked.set("USD")
second_clicked= StringVar()
second_clicked.set("USD")
#welcome new users
welcome = Label(root, text="Welcome to your new favorite Currency Converter")
#create the dropdown options/ input box / button
original =OptionMenu(root, clicked, *currencies)
converted =OptionMenu(root, second_clicked, *currencies)
currency_amount= Entry(root, width=30)
convert = Button(root, text="Convert", padx=10, pady=10, command=lambda:conversion(clicked.get(),second_clicked.get(), currency_amount.get()))
#place widgets
welcome.grid(row=0, column=1, columnspan=2)
original.grid(row=1, column= 1, columnspan=1)
converted.grid(row=1, column=2, columnspan=1)
currency_amount.grid(row=2, column=1, columnspan=2)
convert.grid(row=3, column=1, columnspan=2)
root.mainloop()
解决方案
首先c
定义:
c = CurrencyConverter()
然后在 中conversion
,对象c
被调用:
result = c(currency_amount, clicked, second_clicked)
这与以下内容相同:
result = CurrencyConverter()(currency_amount, clicked, second_clicked)
因此,当我们尝试在 object 上调用函数时出现错误c
。
它可能应该如下所示:
result = c.convert(currency_amount, clicked, second_clicked)
推荐阅读
- excel - 每当在 Excel-VBA 中选择或取消选择其父节点时,如何自动选择或取消选择所有子节点?
- javascript - 按下左箭头后,Jquery 终端光标隐藏在 FF 中
- angular - 区:
; 任务:Promise.then;值:RangeError:超出最大调用堆栈大小 - r - 想在 data.table 的同一列中找到最近的非 NA 值
- c++ - to_address 的具体用例
- json - Xamarin Forms IOS - 来自 json 字符串的 NSData
- node.js - VS Code 自动 npm 构建失败并显示“未找到 npm 命令”
- linux - 是否可以在 Kubernetes Pod 中挂载主目录(~)?
- python-3.x - 使用 cx_Freeze 创建的可执行文件在 Windows 上崩溃
- node.js - 发布表单数据时请求正文为空