Judul ini cukup meringkas apa yang saya inginkan terjadi.
Inilah yang saya miliki, dan sementara program tidak meledak pada integer nonpositif, saya ingin pengguna diberi tahu bahwa integer nonpositif pada dasarnya adalah omong kosong.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-g", "--games", type=int, default=162,
help="The number of games to simulate")
args = parser.parse_args()
Dan hasilnya:
python simulate_many.py -g 20
Setting up...
Playing games...
....................
Output dengan negatif:
python simulate_many.py -g -2
Setting up...
Playing games...
Sekarang, jelas saya bisa saja menambahkan jika untuk menentukan if args.games
adalah negatif, tetapi saya ingin tahu apakah ada cara untuk menjebaknya di argparse
tingkat, sehingga dapat mengambil keuntungan dari pencetakan penggunaan otomatis.
Idealnya, itu akan mencetak sesuatu yang mirip dengan ini:
python simulate_many.py -g a
usage: simulate_many.py [-h] [-g GAMES] [-d] [-l LEAGUE]
simulate_many.py: error: argument -g/--games: invalid int value: 'a'
Seperti itu:
python simulate_many.py -g -2
usage: simulate_many.py [-h] [-g GAMES] [-d] [-l LEAGUE]
simulate_many.py: error: argument -g/--games: invalid positive int value: '-2'
Untuk saat ini saya melakukan ini, dan saya rasa saya senang:
if args.games <= 0:
parser.print_help()
print "-g/--games: must be positive."
sys.exit(1)