Я слишком долго думал об этом и не догадывался, может быть, некоторые из вас могут помочь.
У меня есть папка скриптов Python, все из которых имеют одинаковое окружающее тело (буквально, я сгенерировал его из скрипта оболочки), но есть один кусок, который отличается от всех них. Другими словами:
Top piece of code (always the same)
Middle piece of code (changes from file to file)
Bottom piece of code (always the same)
И сегодня я понял, что это плохая идея, например, если я хочу что-то изменить из верхнего или нижнего разделов, мне нужно написать сценарий оболочки, чтобы сделать это. (Не то, чтобы это было сложно, просто кажется, что это очень плохой код).
Итак, что я хочу сделать, так это иметь один внешний скрипт Python, который выглядит так:
Top piece of code
Dynamic function that calls the middle piece of code (based on a parameter)
Bottom piece of code
И тогда любой другой файл python в папке может быть просто средней частью кода. Однако обычный модуль не будет работать здесь (если я не ошибаюсь), потому что я получу код, который мне нужно выполнить, из аргумента, который будет строкой, и, таким образом, я не буду знать, какую функцию запустить до времени выполнения .
Итак, я придумал еще два решения:
- Я мог бы написать несколько операторов if, по одному для запуска каждого сценария на основе определенного параметра. Я отклонил это, поскольку это даже хуже, чем предыдущий дизайн.
Я мог бы использовать:
os.command (sys.argv [0] scriptName.py)
который будет запускать скрипт, но вызов python для вызова python не кажется мне очень элегантным.
Так у кого-нибудь есть другие идеи? Спасибо.