Квалифицированный импорт в Python
Я ищу способ импортировать определенные методы из модуля квалифицированным способом; например (псевдокод),
from math import sqrt as math.sqrt
# ...
SQRT2 = math.sqrt(2)
Это возможно?
Это полезно для управления пространствами имен, чтобы не загрязнять глобальное пространство имен. Кроме того, эта схема четко указывает на источник метода / класса в любой части кода. Я также могу использовать import math
, но затем фактические требуемые методы (например, sqrt
) будет неявным.
2 ответа
Решение
Вы можете использовать встроенный __import__
функция с fromlist
параметр вместо:
math = __import__('math', fromlist=['sqrt'])
SQRT2 = math.sqrt(2)
Я не уверен, какую проблему вы видите с использованием import math
а потом math.sqrt
?
Вы хотите по-другому назвать пространство имен? Затем сделайте что-то вроде ниже:
import math as pymath
# ...
SQRT2 = pymath.sqrt(2)