Başlık, ne olmasını istediğimi hemen hemen özetliyor.
İşte sahip olduğum şey ve program pozitif olmayan bir tamsayı havaya uçurmasa da, kullanıcının pozitif olmayan bir tamsayının temelde saçmalık olduğu konusunda bilgilendirilmesini istiyorum.
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()
Ve çıktı:
python simulate_many.py -g 20
Setting up...
Playing games...
....................
Negatif çıktı:
python simulate_many.py -g -2
Setting up...
Playing games...
Şimdi, açık bir if args.games
şekilde negatif olup olmadığını belirlemek için bir if ekleyebilirim , ancak argparse
otomatik kullanım baskısından yararlanmak için seviyeyi yakalamanın bir yolu olup olmadığını merak ettim .
İdeal olarak, buna benzer bir şey basar:
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'
Şöyle ki:
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'
Şimdilik bunu yapıyorum ve sanırım mutluyum:
if args.games <= 0:
parser.print_help()
print "-g/--games: must be positive."
sys.exit(1)