使用raw_input代替python3中的输入

时间:2018-10-04 17:36:08

标签: python python-3.x

我习惯于使用raw_input(...)进行某些调试。但是,在python3中,它已更改为input(...)。有没有一种方法可以在我的项目顶部定义别名,例如:

# __init__.py
raw_input = input

我尝试了上面的方法,但是它只能在我添加到的文件中使用,而不能在该目录中的任何其他文件中使用。我希望这基本上可以在python存储库中的每个文件中工作。

3 个答案:

答案 0 :(得分:3)

您可以在一个单独的文件(例如aliases.py)中定义所有别名,然后在需要的地方(例如import aliases)导入该文件。

与这种方法的缺点是,除非您使导入更加严格(即aliases.alias)或者如果您不关心避免通配符导入(即,您将通过from aliases import raw_input引用别名) from aliases import *

此外,如果您不介意别名文件中的其他导入,则可以使用内建名称空间:

import builtins

builtins.raw_input = input

您仍然必须定义所有别名单独的文件(例如aliases.py),然后在需要的地方(例如import aliases)导入所述文件,但是使用内建命名空间的好处是您可以完全使用该导入如给定的。

答案 1 :(得分:0)

您可以通过创建用于创建重命名功能的模块,然后将其导入到您想要的每个文件中来做到这一点:

首先在alias.py中添加模块功能声明

def raw_input(a):
    return input(a)

第二,导入到另一个文件:

from alias import raw_input
x = raw_input("hello world")
print(x)

遗憾的是,您必须将模块导入到要使用重命名功能的每个文件中。

希望它对您有用!

答案 2 :(得分:0)

将其放在顶部,您将完全得到想要的东西。

import builtins
builtins.raw_input = builtins.input

保证可以正常工作,但通常被认为是不好的做法(每个人都将把raw_input定义在哪里)