Ответ 1
если вы будете следовать общей идиоме python, чтобы сделать весь свой код, даже "существующие программы", импортируемые в виде модулей, вы могли бы сделать именно то, что вы описали, без каких-либо дополнительных проблем.
вот конкретная идиома, о которой я говорю, которая превращает ваш программный поток "вверх дном", так как __name__ == '__main__'
будет помещен в нижней части файла, как только все ваши def
будут выполнены:
# program.py file
def foo():
""" analogous to a main(). do something here """
pass
# ... fill in rest of function def here ...
# here is where the code execution and control flow will
# actually originate for your code, when program.py is
# invoked as a program. a very common Pythonism...
if __name__ == '__main__':
foo()
По моему опыту, довольно легко модифицировать любые существующие скрипты, которые у вас есть, чтобы следовать этой форме, возможно, максимум на пару минут.
Так как есть другие преимущества, связанные с тем, что вы программируете также модуль, вы обнаружите, что большинство скриптов python
на самом деле делают это таким образом. Одно из преимуществ этого: все, что вы пишете, потенциально можно использовать в форме модуля, включая cProfile
-инг вашего foo()
.