我需要在命令列中傳遞一個函式并使用 argparse 進行決議。我怎樣才能做到這一點?
例如。
python program.py --params a=range(1, 10, 1), b=range(2, 5, 1)...
我測驗過:
parser.add_argument('-p', "--params", type=json.loads)
但是當我嘗試啟動 cmd 時:
python program.py --p {"a": range(1, 10, 1}
回傳此錯誤:
error: argument -p/--params: invalid loads value: '{"a": range(1,10,1)}'
uj5u.com熱心網友回復:
您應該為此創建自己的自定義函式并將其傳入 type
例如
>>> def hyphenated(string):
... return '-'.join([word[:4] for word in string.casefold().split()])
...
>>> parser = argparse.ArgumentParser()
>>> _ = parser.add_argument('short_title', type=hyphenated)
>>> parser.parse_args(['"The Tale of Two Cities"'])
Namespace(short_title='"the-tale-of-two-citi')
更多資訊:這里
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/398023.html
上一篇:如何在python中動態創建函式
