如果__name__ =='__main__'函数调用

DmgCtrl-b.net

我正在尝试解决我需要构建的一段代码中遇到的问题。我有一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 if __name__ == "__main__" 从其他文件调用函数:

if __name__ ==“ __main__”的位置:

替代 if __name__ == '__main__':

如果__name__ =='__main__'不起作用ipython

如果__name__ ==“ __main__”条件(带烧瓶/弹性豆茎)

如果在IPython中__name__ =='__main__'

如何测试或模拟“如果__name__ =='__main__'”内容

在Python中调用getLogger之前,是否需要显式检查__name__ ==“ __main__”?

Pycharm“Python 控制台”中的 exec(open) 函数不执行“if __name__ == '__main__”块

仅当 __name__ == "__main__" 时才从 setuptools 运行设置函数?

在C ++中模拟__name__ == __main__是否导致错误“未定义类似函数的宏”

__name__ ==“ __main__”怎么办?

来自 if __name__ == "__main__" 的返回语句

如何使用 if __name__ == '__main__':

R是否等效于pythonic的“如果__name__ ==“ __main__”:main()“?

是否有C与Python等效:如果__name__ =='__main__':在文件顶部写入main()?

Python:如果__name__ =='__main__',则导入并初始化Argparse?

Python:如果__name__ =='__main__',则导入并初始化Argparse?

如果__name__ =='__main__':语句下写很多代码是否常见?

如果__name__ =='__main__',则相当于python的node.js

Python:命令行,sys.argv,“如果__name__ =='__main__'”

如何从命令行运行如果__name __ ==“ __ main__”不包含的单独函数?

python if __name__ ==“ __main__”:IndentationError:预期为缩进块

如何在“if __name__ == '__main__'”中模拟.patch 变量

使用python-multiprocessing与if __name__ =='__main__'相关的谜

将多个参数传递给 Python __name__=="__main__"

为什么不将__name__ =='__main__'放在模块的开头?

如果 __name __ == '__main__', gunicorn 是否也执行

如果__name__ ==“ __main__”,则Apache上托管的web.py不会在一边运行代码: