python使用parser传入list列表参数并使用vscode进行调试时传入列表参数

parser使用小技巧

1、使用命令行传入list列表参数

1、使用nargs参数

example:

import argparse

def options():
    parser = argparse.ArgumentParser(description="test list")
    
    parser.add_argument('--weight',
                        nargs = '+',
                        type=float,
                        default=[0.7,0.7,1.1,0.7,0.7,1.4],
                        )
    args = parser.parse_args()
    return args
    
if __name__ == "__main__":
    option = options()
    print(type(option.weight))
    print(option.weight)
    for i in option.weight:
        print(type(i))
        print(i)
        
"""
命令行命令:
python test.py --weight 0.7 0.7 1.1 0.7 0.7 1.4
结果:

[0.7, 0.7, 1.1, 0.7, 0.7, 1.4]

0.7

0.7

1.1

0.7

0.7

1.4
"""

2、使用vscode调试时传入list列表参数进行调试

首先打开配置,进行配置文件的编写:

python使用parser传入list列表参数并使用vscode进行调试时传入列表参数_第1张图片

图来自博客博客 。

在对应的代码块中添加args,如下图(注意参数之间需要用字符串分割开,用空格是不行的)

python使用parser传入list列表参数并使用vscode进行调试时传入列表参数_第2张图片

此时,如果我们按照下列编写配置文件时,会报错。

{
  // 使用 IntelliSense 了解相关属性。 
  // 悬停以查看现有属性的描述。
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "justMyCode": true,
      "args": [
                "--weight", "0.7 0.7 1.1 0.7 0.7 1.4",
              ]
    }
  ]
}

在执行: 运行——>启动调试 命令时会报错:

main.py: error: argument --weight: invalid float value: '0.7 0.7 1.1 0.7 0.7 1.4'

提示我们参数是无效的。

此时,我们应该按照下列方法进行编写:

{
  // 使用 IntelliSense 了解相关属性。 
  // 悬停以查看现有属性的描述。
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "justMyCode": true,
      "args": [
                "--weight", "0.7", "0.7", "1.1", "0.7", "0.7", "1.4",
              ]
    }
  ]
}

你可能感兴趣的:(python,vscode,开发语言)