元组不可调用(IDLE Python)

时间:2019-03-03 20:09:13

标签: python

我目前正在研究一个显示菜单的项目,然后允许您订购并给您收据。我的项目在元组列表中,并且元组包含项目的名称,价格和卡路里。

我的菜单功能(如下),总是给我一个关于元组不可“调用”的错误。我该如何解决?

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))

菜单()

谢谢。

1 个答案:

答案 0 :(得分:0)

您提供的代码示例并非错误的根源。相反,在代码的其他地方,您试图使用一个包含元组的变量,就好像它是一个函数一样。

假设menu确实与此问题有关,我可以想到两种可能的可能性。

  1. 您不小心将大概的全局变量menu重新分配给另一个对象。这种情况可能类似于以下情况

    def menu():
        # ...
        pass
    
    if __name__ == '__main__':
        menu = (1,2,3)
        menu()
    

    请注意,在语句menu = (1,2,3)之后,menu引用了元组(1,2,3),而不是先前定义的函数。

  2. 您可以使用局部变量对函数menu进行阴影处理。这种情况可能类似于以下情况

    def menu():
        # ...
        pass
    
    def foo():
        menu = (1,2,3)
        menu()
    
    if __name__ == '__main__':
        foo()
    

    请注意,函数foo创建了一个名为menu的局部变量,该局部变量用相同的名称“遮盖了”全局变量。