Kirillio
Понимаю, что можно запустить часть кода иными способами. Но в вопросе как раз был обозначен момент, что интересует именно возможность старта с n-ой строки. Полагаю, ответ - нет. Спасибо)
А ваш вопрос порождает встречный вопрос. Вот как по-вашему, каков должен быть результат программы
если её запустить со второй строки? На тот момент, когда выполняется принт переменная а не определена. Должна ли быть вызвана ошибка, или вы подразумеваете, что весь предыдущий код должен быть прочитан, но “не выполнен”. Тот факт, что язык динамический, означает, что эта переменная может возникнуть в области видимости каким-то довольно магическим образом, например
from string import letters
for i, l in enumerate(letters):
locals()[l] = i
print a, b, c
попробуйте выполните, это корректный код, он выполнится без ошибок. Это на практике показывает, что именно в питоне выдирать куски из файлов бессмысленно. Когда вы просто импортируете класс из модуля, весь код этого модуля выполняется, потому что структура нужного класса может строиться динамически и эта динамика размазана по всему модулю и всем его зависимостям.