如何从另一个Python模块执行umain_uu?

2024-05-15 10:49:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python文件,我不是它的维护者,它看起来像下面的代码。在不修改代码以将所有内容都放在if\uuu名称下的情况下,有没有办法从另一个模块导入它,以便我可以以编程方式执行它并传递参数?在

import configargparse

if __name__ == '__main__':
    args = get_args()
    #more code to execute...

Tags: 模块文件代码import名称内容参数if
1条回答
网友
1楼 · 发布于 2024-05-15 10:49:26

你不能,在大多数情况下。这些代码没有以有用的方式公开。如果能够修改源文件,典型的解决方案是将所有代码移出if __name__ == '__main__'块,并将其放入main()函数中。在

可以使用execfile函数来做您想做的事情,如here所述,但这是一个丑陋的解决方案,原因有很多(因为您作弊并使用它来获取文件名,而模块级变量可能不会如您预期的那样引用为module.var,如该页上的一些评论所述)。在

即使在这个例子中,也不清楚是否存在传递参数的有用方法。我想你可以显式地设置sys.argv,但是看看这已经有多恶心了。。。在

相关问题 更多 >