Python 3.6中如何将main()的参数传递给其他函数?
解决argparse参数传递问题
我明白你现在的困惑——刚接触argparse的时候,确实容易在参数传递这块卡壳。咱们先拆解你代码里的问题,再一步步修正:
你的代码核心问题
- 你把
config_check函数定义在了main函数内部,虽然Python允许这种嵌套写法,但会增加参数传递的复杂度,也不符合常规的代码结构逻辑。 - 函数定义里的
*pass args here from main*是无效语法,这不是Python里声明参数的正确方式。
修正后的代码
咱们把config_check移到main外面,让它明确接收解析后的参数对象,这样就能轻松访问skip属性了:
import argparse def config_check(args): # 直接通过传入的args对象访问skip参数 if args.skip: print("Not making modifications!") else: print("Making modifications!") def main(): parser = argparse.ArgumentParser() parser.add_argument("--skip", "-s", help="Skip updates to configuration.", action="store_true") args = parser.parse_args() # 把解析好的args传递给config_check函数 config_check(args) if __name__ == "__main__": main()
额外的灵活写法
如果你只需要skip这一个参数,也可以直接传递这个值,让函数职责更聚焦:
import argparse def config_check(skip): if skip: print("Not making modifications!") else: print("Making modifications!") def main(): parser = argparse.ArgumentParser() parser.add_argument("--skip", "-s", help="Skip updates to configuration.", action="store_true") args = parser.parse_args() # 只传递skip参数的布尔值 config_check(args.skip) if __name__ == "__main__": main()
核心思路其实很简单:先在main里完成参数解析,然后把解析结果(或者你需要的具体参数值)作为参数传给其他函数就行啦。
内容的提问来源于stack exchange,提问作者dmn0972
相关产品推荐
相关产品推荐

