的我使用argparse在python解析命令行參數:的Python:提取出的變量命名
parser = ArgumentParser()
parser.add_argument("--a")
parser.add_argument("--b")
parser.add_argument("--c")
args = parser.parse_args()
現在我想要做一些計算與a
,b
和c
。但是,我總是發現編寫args.a + args.b + args.c
令人厭煩。
因此,我可以從中獲取這些變量:
a, b, c = [args.a, args.b, args.c]
,這樣我可以寫a + b + c
。
有沒有更優雅的方式呢?
添加許多參數時,手動提取變得非常單調且容易出錯。
感謝您的回答。 它的工作原理,但'exec'「'部分感覺像一個非常醜陋的黑客。爲什麼這是必要的? – Lemming
更正:如果函數包含嵌套函數,則不起作用。在這種情況下,彈出以下錯誤消息: 'exec「」 SyntaxError:在函數'main'中不允許使用未限定的exec,它包含一個帶有自由變量的嵌套函數' – Lemming
Ick。我不知道,但它是有道理的。閉包需要Python的標準局部變量機制,它通過索引來訪問局部變量。在函數的任何地方使用'exec'語句都會強制Python使用另一種通過名稱訪問本地名稱的方法,因爲'exec'可以定義或修改locals(這也是爲什麼你可以更新'locals()'如果'exec '在功能中看到,但不是其他)。 – kindall