Импорт функций с тем же именем перезапишет? - PullRequest
1 голос
/ 05 апреля 2019

Я хочу импортировать 2 функции из 2 разных файлов, где файлы имеют разные имена, но функции будут иметь одинаковые имена. Я хочу выполнить первую функцию, а затем импортировать следующую и выполнить ее.

Например:

from file1 import func

func()

from file2 import func

func()

У меня вопрос, будет ли при втором вызове func функция заменена на функцию из file2? Или он все еще будет использовать тот, который импортирован из file1?

Безопасно ли перезаписывать это так или лучше, если функция названа по-другому?

1 Ответ

0 голосов
/ 05 апреля 2019

Если вы делаете from foo import func, а затем позже в том же модуле from bar import func, тогда вы просто определили func дважды. Но это может указывать только на одно значение, и оно будет самым последним. Первый импорт, возможно, никогда не существовал, если вы сделал второй.

Чтобы избежать этого, вы можете выполнить импорт, назначив другое имя для импорта:

from foo import func as funcFoo

Или вы можете просто импортировать только модуль и затем использовать:

foo.func и bar.func

...