Skip to main content
 首页 » 编程设计

带有 argparse 参数表单列表的 Python 命令行参数不起作用

2025年05月04日8dyllove98

您好,我刚开始学习 python。我有一个程序有问题,我想修改 Mag Pi 第 7 期中名为 LineGenerator.py 的程序。 完整代码:

http://www.themagpi.com/issue/issue-7/

这个程序介绍了命令行参数。

我正在尝试添加一个命令行参数来更改图形的颜色。

首先我定义了颜色: ...

WH = 255,255,255 
 
RE = 255,0,0 

等等……

然后我定义了命令行参数: ...

parser.add_argument('-c', action='store', dest='colour', type=str,  
                    help='Choose Colour') 

...

稍后在我的程序中我想画线 ...

pygame.draw.line(screen, args.colour,(nSX),(nSY),(nEX,nEY),1) 

...

当我用

启动脚本时
python LineGenerator.py -c WH 

我收到此错误消息:

TypeError: invalid color argument 

当我直接在代码中将“args.colour”更改为“WH”时,它就起作用了。

你能帮帮我吗?

请您参考如下方法:

使用字典按名称存储颜色值:

colors = { "WH": (255, 255, 255), 
           "RE": (255, 0, 0), 
         } 

然后使用传递给 -c 选项的字符串访问正确的颜色:

pygame.draw.line(screen, colors[args.colour], (nSX), (nSY), (nEX,nEY), 1)