Python: исключение импорта - PullRequest
       21

Python: исключение импорта

2 голосов
/ 05 декабря 2011

Можно ли импортировать из пакета все, кроме одного модуля?

Мне нужно много модулей из определенной библиотеки, которую я использую в своем классе, но, похоже, для нее использовалось то же имя модуляодин из модулей, которые мне нужны.

Мне нужно использовать операцию set и пересечение, но когда я импортирую эту библиотеку из моего класса, из-за этого выдается ошибка.

Я не сделалЯ не хочу импортировать его отдельно или ставить имя перед каждым методом, так как я часто его использую.

Есть ли способ для Python импортировать все, кроме определенного метода, такого как set?Или, может быть, импортировать часть set позже?

Ответы [ 3 ]

7 голосов
/ 05 декабря 2011

Нет, терминологии для from ... import * except blah, bleh, bluh нет.Вы можете написать свою собственную функцию импорта для ее поддержки или сделать что-то вроде:

from xyz import *
del set

, что прекратит затенение встроенного set, чтобы вы могли использовать его снова.Тогда, если вам нужна функция xyz.set, вы можете выполнить:

from xyz import set as xyzset

Примечание: from ... import * не обычно хорошая практика, и вы должны убедиться, что модули, которые вы используете, этоПоддержите его - если они не говорят об откровенности, говорят, что они были разработаны для такого использования, то вам не следует (если позже вам не понравится отлаживать странные проблемы;).

0 голосов
/ 05 декабря 2011

Я не уверен, что полностью понимаю, что происходит (предоставление реальных имен модулей может помочь).Но вообще считается плохой практикой делать from ... import * вообще, потому что тогда неясно, откуда происходят определенные вещи.Вместо этого выполните from ... import thingA, thingB, thingC.

Вы также можете выполнить import ... as shortname, а затем ссылаться на методы как shortname.whatever (где shortname, очевидно, может быть чем-то очень коротким).

0 голосов
/ 05 декабря 2011

Полагаю, что вы хотите:

from thing import a, b, c, d, e, f

, который импортирует a, b, c, d, e, f из thing.

AFAIK, нет способа сделать from thing import all but a, b, c
вот почему

import thing
thing.a

существует в первую очередь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...