Форум сайта python.su
Можно ли как-то сделать так чтобы при считывании строки скрипт вызывал ту или иную функцию. Делаю примерно так:
func=raw_input(“Введите команду: ”)
if func=“ls”:
ls()
elif func=“rm”:
rm()
else:
default()
Но может быть есть более лучший метод?
Офлайн
Может так?
func=raw_input(“Введите команду: ”)
eval('func'+'()')
Офлайн
Спасибо.
Начал было смотреть уже модуль cmd. Можете объяснить для каких целей он(cmd) вообще нужен и как с ним работать?
Офлайн
slivlen, может не
func=raw_input(“Введите команду: ”)а
eval('func'+'()')
func=raw_input(“Введите команду: ”)>>> func=raw_input(“Введите команду: ”)
eval(func+'()')
Офлайн
pythonwin спасибо что поправил. Это просто описка была.
Офлайн
В качестве совета из категории tips&tricks: если не стоит задача дать доступ ко всем callable-объектам, то лучше сделать не eval(funcname+'()'), а eval('cmd_'+funcname+'()'), это собственно и гарантирует, что пользователь вызовет не любой callable-объект, а только из заранее предусмотренных (те, которые с префиксом cmd_)
Офлайн