我试图在一个小python程序中将用户输入作为函数调用但是,当我使用input()
方法时,python shell不允许我输入任何内容并自行退出。
from fileinput import input
def funcinput():
comm = input("-->")
print('your input is %s' %comm)
if __name__ == "__main__":
print("try to get input")
funcinput()
代码看起来像这样,每次运行时,python启动器都会给我:
try to get input
your input is <fileinput.FileInput object at 0x10464c208>
>>>
不让我输入任何东西
我该怎么做才能让它发挥作用?
答案 0 :(得分:2)
这里的原因是屏蔽内置input
。在某些时候,会出现from fileinput import input
,这会屏蔽builtins.input
并将其替换为fileinput.input
。该函数不返回str
,而是返回FileInput
的实例:
>>> from fileinput import input
现在使用input
选择fileinput.input
:
>>> print(input("--> "))
<fileinput.FileInput at 0x7f16bd465160
如果导入fileinput
必需导入模块并使用点表示法访问input
函数:
>>> import fileinput
>>> print(fileinput.input("--> ")) # fileinput input, returns FileInput instance.
>>> print(input("--> ")) # original input, returns str
如果此选项失败(或者由于某种原因您无法控制导入),您可以尝试删除导入的引用以查找它以使用内置版本:
>>> from fileinput import input
>>> print(input("--> "))
<fileinput.FileInput at 0x7f16bd465f60>
现在删除del input
的引用:
>>> del input
>>> input("--> ")
-->
input
一如既往。