You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将get_args()获取的命令行参数传入main函数并存储使用?

问题修正方案

原代码存在两处核心问题导致参数无法传递到main函数:

  1. get_args()函数未返回解析后的参数对象
  2. 仅将函数本身赋值给变量,未实际调用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 15:43:15