我目前正在研究一个显示菜单的项目,然后允许您订购并给您收据。我的项目在元组列表中,并且元组包含项目的名称,价格和卡路里。
我的菜单功能(如下),总是给我一个关于元组不可“调用”的错误。我该如何解决?
def menu():
order = ''
while order != 'stop':
print('Welcome to Peter\'s resturant! Here are the items you can order: ')
for a, b, c in items:
print('{:.<20} ${:2.2f} {24:28}'.format(a, b, c))
菜单()
谢谢。
答案 0 :(得分:0)
您提供的代码示例并非错误的根源。相反,在代码的其他地方,您试图使用一个包含元组的变量,就好像它是一个函数一样。
假设menu
确实与此问题有关,我可以想到两种可能的可能性。
您不小心将大概的全局变量menu
重新分配给另一个对象。这种情况可能类似于以下情况
def menu():
# ...
pass
if __name__ == '__main__':
menu = (1,2,3)
menu()
请注意,在语句menu = (1,2,3)
之后,menu
引用了元组(1,2,3)
,而不是先前定义的函数。
您可以使用局部变量对函数menu
进行阴影处理。这种情况可能类似于以下情况
def menu():
# ...
pass
def foo():
menu = (1,2,3)
menu()
if __name__ == '__main__':
foo()
请注意,函数foo
创建了一个名为menu
的局部变量,该局部变量用相同的名称“遮盖了”全局变量。