为外部函数寻找输入功能吗?

时间:2019-05-24 11:11:36

标签: python

是否有一个函数可以查找另一个函数的输入?

例如,getInput()函数如下所示:

x = '1'
x = int(x)
print(getInput(x))

会说“ 1”,而不是1

这可能吗?

这将是经典的方法:

x = input("Enter a number: ")
try:
    int(x)
except:
    pass

if x not in range(0, 10):
    print("str(x)+ "is not a number")

相反:

x = input("Enter a number: ")
try:
    int(x)
except:
    pass

orig_x = getInput(x)
if x not in range(0, 10):
    print(orig_x+" is not a number")

我知道对于这段代码我可以说:

x = input("Enter a number: ")
try:
    int(x)
except ValueError:
    print(x+" is not a number")

但是当它变得更加复杂并且一个变量被多次编辑和转换而使它变得难以跟踪时(如涉及类和对象时),getInput()函数可能会有所帮助。

2 个答案:

答案 0 :(得分:1)

您可以编写自己的函数吗?

>>> def get_input(message):
...     _input = input(message)
...     if not _input.isnumeric():
...         raise ValueError('Input needs to be numeric')
...     return int(_input)
...
>>> get_input('Enter a number: ')
Enter a number: 10
10
>>>

答案 1 :(得分:1)

好吧,让我确认我是否正确回答了您的问题,您想像这样获得变量的初始赋值:

x = '1'
x = int(x)
print(getInput(x))

输出应显示为“ 1”而不是1

答案(据我所知):解释器或编译器没有实际用途来存储变量的过去值。如果您确实想要它的过去值,则可以分配一个新变量。