首页 > 解决方案 > 函数内的 input() 抛出异常->“input() 接受 0 个位置参数,但给出了 1 个”

问题描述

def input():
    number = int(input('enter a number: '))
    return number

input()

def checkValidity(val):
    if val == 0 and val >= 2:
        switch(val)
    else:
        input()

def switch(num):
    if num == 1:
        print('one')
    elif num == 2:
        print('two')
    else:
        print('null')

checkValidity(number)

input()没有函数的情况下定义时可以正常工作,但是在函数中定义并调用时,它会引发异常。

标签: python

解决方案


你不应该为你的函数命名input(),因为它已经是一个内部函数了!你的函数应该被调用my_user_input()或类似的东西。

通过调用您自己的函数input(),您可以隐藏并“覆盖”现有的 BuiltIn-input()函数。这样,您将无法再在脚本中访问它的功能。


推荐阅读