Я рассмотрел вопрос similar, но на самом деле он не отвечает на вопрос, который у меня есть. Скажем, у меня есть следующий код (слишком упрощенный, чтобы выделить только мой вопрос).Python: модуль импорта без выполнения сценария
class A:
def __init__(self,x):
self.val = x
a = A(4)
print a.val
Этот код находится в файле someones_class.py
. Теперь я хочу импортировать и использовать класс A
в свою программу без измененияsomeones_class.py
. Если я сделаю from someones_class import A
, python все равно выполнит строки сценария в файле.
Вопрос: Есть ли способ импортировать класс A
без выполнения двух последних строк?
Я знаю про if __name__ == '__main__'
вещь, но у меня нет возможности изменить файл someones_class.py
, так как он получен только после запуска моей программы.
Если модуль, который вы хотите импортировать, имеет в нем строки, которые не являются частью 'if __name__ == '__main __':' suite, тогда он сломан, и вы не должны поощрять автора, пытаясь обойти его , Вместо этого отметьте это как ошибку, которая будет исправлена. – martineau