gpt4 book ai didi

python - 输入函数不起作用并返回 FileInput 对象

转载 作者:行者123 更新时间:2023-12-01 03:41:07 26 4
gpt4 key购买 nike

我试图在一个小型 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>
>>>

不让我输入任何内容

我应该怎么做才能让它发挥作用?

最佳答案

这里的原因是内置 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("--> ")
-->

输入一如既往地工作。

关于python - 输入函数不起作用并返回 FileInput 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39629406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com