我习惯于使用raw_input(...)
进行某些调试。但是,在python3中,它已更改为input(...)
。有没有一种方法可以在我的项目顶部定义别名,例如:
# __init__.py
raw_input = input
我尝试了上面的方法,但是它只能在我添加到的文件中使用,而不能在该目录中的任何其他文件中使用。我希望这基本上可以在python存储库中的每个文件中工作。
答案 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定义在哪里)