如何将get_args()获取的命令行参数传入main函数并存储使用?
问题修正方案
原代码存在两处核心问题导致参数无法传递到main函数:
get_args()函数未返回解析后的参数对象- 仅将函数本身赋值给变量,未实际调用
get_args()获取参数
修正后代码(模块化解耦写法)
import argparse def get_args(): parser = argparse.ArgumentParser( prog='Program Name goes here', description='What the program does goes here', epilog='Text at the bottom of help' ) parser.add_argument('password') return parser.parse_args() # 返回解析完成的参数对象 def main(args): print(f"输入的密码是: {args.password}") # 直接访问参数属性 if __name__ == '__main__' : args = get_args() # 调用函数获取命令行参数 main(args) # 将参数传递给main函数
简化写法(适合小型脚本)
如果不需要严格解耦参数获取和业务逻辑,也可以直接在main内部调用get_args():
import argparse def get_args(): parser = argparse.ArgumentParser( prog='Program Name goes here', description='What the program does goes here', epilog='Text at the bottom of help' ) parser.add_argument('password') return parser.parse_args() def main(): args = get_args() print(f"输入的密码是: {args.password}") if __name__ == '__main__' : main()
关键修改说明
- 在
get_args()中添加return parser.parse_args(),让函数能输出解析后的参数 - 确保实际调用
get_args()(带括号)获取参数,而非仅赋值函数对象 - 通过参数传递或内部调用的方式,让
main函数能访问到命令行参数
内容的提问来源于stack exchange,提问作者J-Lo
相关产品推荐
相关产品推荐

