在Python中,是否存在类似于atexit的内容。Atexit是用来“拆卸”的。我需要一些像“设置”之类的东西。在我运行这个设置的任何脚本之前都会被执行。在
编辑
我应该指出我有几个单独执行的小脚本。所有这些脚本都连接到同一逻辑。我想在我们的项目中引入依赖注入,但是在运行每个脚本之前需要配置python-inject。我不想让自己在所有脚本的开头都设置相同的inject.configure(myConfiguration)
来设置所有脚本。在
现在我要看看@en_nuknight关于PYTHONSTARTUP的建议,然后再回来。在
解决方案 @en_nuknight提供的关于PYTHONSTARTUP的东西肯定会起作用。虽然我有所有的部署能力:]我觉得这也不是个好主意。我解决了修改python inject的源代码的问题
谢谢你的帮助!在
请注意,当您使用atexit时,首先需要register a function。我建议您做一些类似的事情来实现“atenter”功能。在
例如
在大多数情况下,地点2似乎是去的地方。place1的缺点是任何导入主函数的文件都会意外地调用atenter。如果在某些平台上进行多线程处理,这也会导致问题。What does if __name__ == "__main__": do?
place3的问题是,如果您在另一个文件中的主函数之上放置一个包装器(比如“RunExamples”命令行实用程序或GUI),则不会调用atenter。在文档中指定main不应该被调用两次就足够了,尽管这也可以强制执行。在
如果您正在寻找更优雅的外观,您可以创建一个“atenter”装饰器,并用它包装您的主要函数。使用singleton模式或类似的模式,您可以确保它只执行一次,不管调用了多少次
有一种替代方法。From the python docs
修改此环境变量将允许您在指定的环境下执行函数。这不是一个好的部署策略(它取决于本地计算机上满足的几个条件,包括python的运行模式)。但是,如果您在部署时对python环境有很强的控制能力,那么它可能更符合您的需要。在
相关问题 更多 >
编程相关推荐