在定义函数之后导入模块

5
以下是Python中的操作方式:

如何在Python中使用以下操作:

def f(num):
    time.sleep(num)
    return num

>>> f(2)
NameError: name 'time' is not defined
>>> import time
>>> f(2)
2

Python是如何将模块“插入”到函数中的,或者在函数创建后如何进行查找机制以便能够导入某些东西?

查找是动态的,但范围是静态的。你需要更多细节吗? - wjandrea
@wjandrea 确定 -- 它从哪里查找? - user10870615
1个回答

6

与编译器不同,编译器在编译时将名称静态绑定到固定地址,而Python代码由解释器执行,解释器在运行时解析名称。因此,名称time指的是什么直到执行运行到实际引用它的表达式时,解释器才会遵循名称解析规则将名称解析为对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接