我正在寻找一种以合格方式从模块中导入某些方法的方法;例如(伪代码),
from math import sqrt as math.sqrt
# ...
SQRT2 = math.sqrt(2)
这可能吗?
这对于管理命名空间很有用,以免污染全局命名空间。此外,该方案在代码的任何部分都清楚地表明了方法/类的来源。我也可以使用import math
,但是实际需要的方法(例如sqrt
)将是隐式的。
我正在寻找一种以合格方式从模块中导入某些方法的方法;例如(伪代码),
from math import sqrt as math.sqrt
# ...
SQRT2 = math.sqrt(2)
这可能吗?
这对于管理命名空间很有用,以免污染全局命名空间。此外,该方案在代码的任何部分都清楚地表明了方法/类的来源。我也可以使用import math
,但是实际需要的方法(例如sqrt
)将是隐式的。
__import__
您可以使用带有参数的内置函数fromlist
:
math = __import__('math', fromlist=['sqrt'])
SQRT2 = math.sqrt(2)
我不确定您在使用import math
then时会遇到什么问题math.sqrt
?
您想以不同的方式命名命名空间吗?然后执行以下操作:
import math as pymath
# ...
SQRT2 = pymath.sqrt(2)