【问题标题】:function() takes 0 positional arguments but 1 was given error for function callingfunction() 接受 0 个位置参数,但为函数调用给出了 1 个错误
【发布时间】:2019-09-06 04:21:40
【问题描述】:

我是一名初学者 Python 程序员,我正在尝试正确理解函数。我想了解为什么此功能不起作用以及错误消息的含义。

def input():
    loop = True


    while loop == True:
        userInput = input('> ').lower()

        if userInput == 'help':
            help()

def main():
    input()

main()

这是从我的源代码中截取的一小部分。 我希望这只是询问用户输入,如果它是“帮助”,则运行在我的代码中其他地方定义的帮助功能。 问题是我收到一条错误消息,内容如下:

TypeError: input() 接受 0 个位置参数,但给出了 1 个

我不确定什么是类型错误或为什么会发生这种情况。

【问题讨论】:

    标签: python function


    【解决方案1】:

    您正面临这个问题,因为input 是 python 中的内置函数。请将输入重命名为 input_1,它会起作用

    【讨论】:

    • input 不是密钥,这就是您可以覆盖它的原因。它是一个内置函数。
    • @Netwave。正确,我同意你的看法。选词错误。
    【解决方案2】:

    您正在重新定义 input 内置功能,只需重命名您的:

    def my_input():
        loop = True
        while loop == True:
            userInput = input('> ').lower()
            if userInput == 'help':
                help()
    
    def main():
        my_input()
    
    main()
    

    【讨论】:

    • 哇,好吧,我不知道我是怎么想出来的。感谢您的帮助。
    【解决方案3】:

    在代码的第一行中,您将input 定义为一个不带参数的函数。这掩盖了python的内置输入功能。

    【讨论】:

      【解决方案4】:

      您在定义输入函数时将 python 的内置输入函数重新定义为接受 0 个参数的函数。考虑为您的函数使用不同的名称。

      【讨论】:

        【解决方案5】:

        userInput = input('> ').lower() 行使用参数'> ' 调用函数input

        【讨论】:

          【解决方案6】:

          由于input 是一个已经在python 中定义的函数,它会抛出一个错误。试试

          def input_func():
              loop = True
          
          
              while loop == True:
                  userInput = input('> ').lower()
          
                  if userInput == 'help':
                      help()
          
          def main():
              input_func()
          
          main()
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-08-19
            • 2020-06-13
            • 1970-01-01
            • 1970-01-01
            • 2013-09-23
            • 1970-01-01
            • 2017-10-05
            • 2016-01-30
            相关资源
            最近更新 更多