我写了一个模块,如果导入它,会自动更改程序的错误输出。在我编写的几乎任何python代码中使用它都非常方便。
因此,我不想将行import my_errorhook
添加到我编写的每个代码中,但希望自动添加此行。
我发现this answer,声明应该避免直接更改python的行为。所以我想改变命令行,比如
python --importModule my_errorhook main.py
并在bashrc中定义别名以覆盖python
命令以自动添加参数。有什么方法可以实现这样的行为吗?
答案 0 :(得分:0)
在python命令行中没有像--importModule
这样的东西。在没有明确导入的情况下接收代码的唯一方法是将函数放在 builtins 模块中。但是,这是一种不鼓励的做法,因为如果没有适当的设计,它会使您的代码难以维护。
假设您的python文件main.py
是整个程序的入口点。现在,您可以创建另一个文件bootstrap.py
,并将以下代码放入新文件中。
import main
__builtins__.func = lambda x: x>=0
main.main()
然后可以从所有模块调用函数func()
而无需导入。例如,在main.py
def main():
...
print(func(1))
...