Как вызвать функцию на основе argparse, используя избирательную структуру? - PullRequest
0 голосов
/ 07 июля 2019

Я новичок в Python, и мне было интересно, как вызвать функцию, основанную на argparse на выборочной структуре

Я пробовал эту функцию

def parseArgument(abv, name, hdescriptop, isrequired):
  parser=argparse.ArgumentParser()
  parser.add_argument(abv, 
                      name, 
                      help=hdescription, 
                      required=isrequired,
                      action="store_true",
                      )
  args=parser.parse_args()
  return args

parseArgument("-y", "--humedity", "Calculate humedity", False)

if args.cycle:
  print("DPV cycle: ", DPV(w, 0, list_DPV_CYCLE, count_NC))
#elif args.moredata:
#  print(more data)

* Совет: нет необходимостичтобы узнать, что делает DPV

Я ожидаю, когда я запускаю скрипт python на терминале и пишу python nameofthescript.py -y, получаю вызываемую функцию parseArgument () с выборочной структурой

1 Ответ

0 голосов
/ 07 июля 2019

В продолжение моего комментария:

In [50]: def parseArgument(argv, abv, name, hdes): 
    ...:   parser=argparse.ArgumentParser() 
    ...:   parser.add_argument(abv,  
    ...:                       name,  
    ...:                       help=hdes,  
    ...:                       action="store_true", 
    ...:                       ) 
    ...:   args=parser.parse_args(argv) 
    ...:   return args 
    ...:  
    ...: args = parseArgument([], "-y", "--humedity", "Calculate humedity")                                     
In [51]: args                                                                                                   
Out[51]: Namespace(humedity=False)
In [52]: args.humedity                                                                                          
Out[52]: False

проверить другую командную строку:

In [53]: args = parseArgument(['-y'], "-y", "--humedity", "Calculate humedity")                                 
In [54]: args                                                                                                   
Out[54]: Namespace(humedity=True)
In [55]: args.humedity                                                                                          
Out[55]: True
...