get_square_root()
函数依赖于math
模块。要在get_square_root()
中调用analysis.py
函数,我不需要导入math
模块,为什么?
# calculator.py
import math
def get_square_root(a):
return math.sqrt(a)
#analysis.py
import calculator
calculator.get_square_root(5)
我在python中了解import
的一些信息(如果我理解错了,请更正我)。当import calculator
时,Python解释器读取整个calculator.py
模块,但是<ModuleName>.<ObjectName>
不能访问该模块中的对象。这就是我在get_square_root()
中称analysis.py
的方式。但是get_square_root()
如何访问math
,因为math
中没有analysis.py
?
答案 0 :(得分:1)
以任何方式运行math
时,get_square_root
都绑定在其模块范围内,从而使import calculator
可以访问它。
在analysis
中运行math
时,get_square_root
仍在calculator
的模块范围内,并且analysis
绑定在{{ 1}},因此您可以以calculator.math
的身份访问它。
在from calculator import get_square_root
中运行analysis
时,math
仍在get_square_root
的模块范围内,但是由于{{ 1}}没有绑定。