#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]()