функции отображения в дикт

#python

Вопрос:

Я хочу запускать функции python из командной строки linux. Итак, я определяю функции и словарь сопоставлений из входных данных linux для функций, которые будут выполняться. Так,например.

 def help():
    print(...)

def dostuff():
    do sth

functions ={
    'help': help()'
    ''dostuff' : dostuff()
    }

def parsecommand():
    return functions[sys.argv]

if __name__='__main__':
    parsecommand()    
 

Когда я теперь запускаю функцию из Linux, [python filename.py] помогите проблема сейчас в том, что python выполняет все функции в словаре и выполняет их при создании словаря. Как я могу этого избежать?
Или что было бы лучшим способом структурировать это?

Ответ №1:

Измените свой диктант вот так:

 functions = {
    'help': help,
    'dostuff' : dostuff
    }
 

Это позволит вам вызывать функции следующим образом:

 functions[sys.argv[1]]()
 

Ответ №2:

Удалите () следующие имена функций в словаре.

 functions ={
  'help': help
  'dostuff' : dostuff
}
 

Вы бы могли запускать функции следующим образом:

 return functions[sys.argv[1]]()
 

Ответ №3:

 functions = {
    'help': help,
    'dostuff': dostuff
}

def parsecommand():
    return functions[sys.argv]()