Saya ingin memiliki argumen opsional yang akan default ke nilai jika hanya ada bendera tanpa nilai yang ditentukan, tetapi menyimpan nilai yang ditentukan pengguna alih-alih default jika pengguna menentukan nilai. Apakah sudah ada tindakan untuk ini?
Sebuah contoh:
python script.py --example
# args.example would equal a default value of 1
python script.py --example 2
# args.example would equal a default value of 2
Saya dapat membuat tindakan, tetapi ingin melihat apakah ada cara yang ada untuk melakukan ini.
python
default-value
argparse
rampok
sumber
sumber
self.foo = (args.bar or some_else_source).upper()
. Ini akan pecah pada Tidak ada objek AFAIUC.Sebenarnya, Anda hanya perlu menggunakan
default
argumenadd_argument
seperti padatest.py
skrip ini :Detailnya ada di sini .
sumber
Perbedaan antara:
dan
dengan demikian:
myscript.py
=> debug adalah 7 (dari default) dalam kasus pertama dan "Tidak ada" di yang keduamyscript.py --debug
=> debug adalah 1 dalam setiap kasusmyscript.py --debug 2
=> debug adalah 2 dalam setiap kasussumber