我正在尝试解决我需要构建的一段代码中遇到的问题。我有一个python模块,我需要能够导入并传递参数,然后这些参数将由主模块进行解析。我得到的是这样的:
#main.py
if __name__ == '__main__'
sys.argv[] #pass arguments if given and whatnot
Do stuff...
我需要添加一个main()
可以接受参数并解析它们,然后将其传递的函数,如下所示:
#main.py with def main()
def main(args):
#parse args
return args
if __name__ == '__main__':
sys.argv[] #pass arguments if given and whatnot
main(sys.argv)
Do stuff...
总结一下:我需要导入main.py并传入函数解析的参数,main()
然后将返回的信息提供给if __name_ == '__main_'
部件。
编辑以澄清我在做什么
#hello_main.py
import main.py
print(main.main("Hello, main"))
ALSO我想还是可以通过调用从外壳main.py
$: python main.py "Hello, main"
因此保留名称== main
我要问的甚至可能吗?今天,我一直在花更多的时间研究这个问题,因为如果可能的话,我想保留我得到的main.py模块。
谢谢,
dmg
在模块文件中,您可以编写代码if __name__ == "__main__"
来获取直接调用该文件时的特定行为,例如通过shell:
#mymodule.py
import sys
def func(args):
return 2*args
#This only happens when mymodule.py is called directly:
if __name__ == "__main__":
double_args = func(sys.argv)
print("In mymodule:",double_args)
然后,当导入到另一个文件时,仍然可以使用该功能:
#test.py
import mymodule
print("In test:",mymodule.func("test "))
因此,调用python test.py
将导致"In test: test test "
,而调用python mymodule.py hello
将导致"In mymodule: hello hello "
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句