Python 输入功能不起作用&;返回FileInput对象
我试图在一个小型python程序中以函数调用的形式获取用户输入,但是,当我使用Python 输入功能不起作用&;返回FileInput对象,python,python-3.x,input,Python,Python 3.x,Input,我试图在一个小型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") fu
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 launcher都会告诉我:
try to get input
your input is <fileinput.FileInput object at 0x10464c208>
>>>
尝试获取输入
你的意见是
>>>
不让我输入任何东西
我应该怎么做才能让它工作呢?这里的原因是对内置功能的掩盖。在某些情况下,会出现一个来自fileinput的
导入,它屏蔽了内置的.input
,并将其替换为。该函数不返回str
,而是返回以下项的实例:
现在使用input
拾取fileinput.input
:
>>> print(input("--> "))
<fileinput.FileInput at 0x7f16bd465160
如果此选项失败(或者由于某种原因您无法控制导入),您可以尝试删除导入的引用,以获得使用内置版本的查询:
>>> from fileinput import input
>>> print(input("--> "))
<fileinput.FileInput at 0x7f16bd465f60>
input
一如既往地工作。您的实际代码中没有显示其他内容。它似乎在你真正的代码comm
中的某个地方变成了FileInput
对象。是的,你们都对了,非常感谢!我被困在这里一天了
>>> 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
>>> input("--> ")
-->