Я пытаюсь сэкономить всего несколько нажатий клавиш для команды, которую я довольно часто набираю в Python.
В моем скрипте запуска Python я определяю функцию load, которая похожа на импорт, но добавляет некоторые функции. Требуется одна строка:
def load(s):
# Do some stuff
return something
Чтобы вызвать эту функцию, я должен набрать
>>> load('something')
Я бы предпочел просто набрать:
>>> load something
Я использую Python с поддержкой readline , поэтому я знаю, что там есть некоторая программируемость, но я не знаю, возможно ли подобное с его помощью.
Я попытался обойти это, используя InteractivConsole
и создав его экземпляр в моем файле запуска, например:
import code, re, traceback
class LoadingInteractiveConsole(code.InteractiveConsole):
def raw_input(self, prompt = ""):
s = raw_input(prompt)
match = re.match('^load\s+(.+)', s)
if match:
module = match.group(1)
try:
load(module)
print "Loaded " + module
except ImportError:
traceback.print_exc()
return ''
else:
return s
console = LoadingInteractiveConsole()
console.interact("")
Это работает с предупреждением, что мне нужно дважды нажать Ctrl-D, чтобы выйти из интерпретатора python: один раз, чтобы выйти из моей пользовательской консоли, один раз, чтобы выйти из реальной.
Есть ли способ сделать это без написания специальной программы на C и встраивания в нее интерпретатора?
Редактировать
Вне канала у меня было предложение добавить это в конец моего файла запуска:
import sys
sys.exit()
Это работает достаточно хорошо, но я все еще заинтересован в альтернативных решениях.