Квалифицированный импорт в 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)
Другие вопросы по тегам