2017-03-03 21 views
-1

我知道,從argsparse像得到的值:多德約argparse庫[巨蟒]

parser.add_argument('--volume', help='Ejecuta una aplicacion cualquiera') 

我也知道,如果該參數爲真或假的:

parser.add_argument('--getVolume', action='store_true', help='Ejecuta una aplicacion cualquiera') 

但我不知道使用一段時間,因爲我想使用像getter-setter這樣的參數。例如,如果我不寫一個數字,程序會返回當前的音量,如果我寫了一個數字,應用程序會將該音量設置給機器人。

python app.py --volume  # Return the current volume 
python app.py --volume 80 # Set the volume to the 80% 

非常感謝你,

卡洛斯。

+0

除了鏈接之外,還可以使用這種默認值,然後您可以決定是否顯示或更新音量。 –

+0

https://docs.python.org/3/library/argparse.html看看例子16.4.3.2 – Serenity

回答

0

您可以使用set/get檢查的默認值。一些僞代碼:

parser.add_argument("-v", "--vol", dest="vol", 
    help="the volume [default: %(default)s]", 
    default=None 
) 
args = parser.parse_args() 

if None == args.vol: 
    print(str(getVolume())) 
else: 
    setVolume(float(args.vol)) 
+0

雖然這樣做,它總是會得到或設置。如果需要,使用'nargs ='?''和'const = ...'會使它真正成爲可選項。 –

+0

當用戶輸入'--vol'時,沒有爲它指定值,您不會考慮這種情況。 – elena

+0

這是一個僞代碼。隨意改變它。當程序處於get模式的命令行中沒有參數時,我會以這種方式來解決這個問題。如果有音量參數,它處於設定模式 –