идиома Python для главной точки входа:
if __name__ == '__main__':
main()
Заменить main()
любой функцией, которая должна идти первой ...
(подробнее о if name ...
: http://effbot.org/pyfaq/tutor-what-is-if-name-main-for.htm)
Если вы хотите указать функцию для запуска через аргумент командной строки, просто проверьте эти аргументы, либо вручную, либо с помощью некоторых помощников, например, http://docs.python.org/library/optparse.html,, затем переход к нужной функции.
Если вам не нужны такие вещи:
if options.function_to_call == 'mydesiredfunction':
mydesiredfunction()
Вы можете воспользоваться getattr
.
И, наконец, еще один «общий» подход с использованием globals
(исключение обработки исключено):
$ cat 1933407.py
#!/usr/bin/env python
# coding: utf-8
import sys
def first():
print '1 of 9'
def second():
print '2 of 9'
def seventh():
print '7 of 9'
if __name__ == '__main__':
globals()[sys.argv[1]]()
Тем временем в командной строке ...
$ python 1933407.py second
2 of 9