所以这对你来说可能听起来很奇怪。假设我有两个文件module.py
和script.py
。
以下是他们的样子:
module.py
import time
print(time.time())
script.py
from module import *
time.sleep(0.1) # Still works as time is imported in the module imported
如何避免这种情况发生?
如果有这样的重复问题,请告诉我。
答案 0 :(得分:4)
最简单的答案是避免使用from module import *
。除了交互式提示之外,它在任何地方都是不值得的。
下一个答案是在module.py
中添加__all__
。 __all__
应该是字符串列表。字符串应该是您要导出的内容的名称。例如:
import time
__all__ = ['MyClass', 'my_func']
class MyClass():
pass
def my_func():
pass
答案 1 :(得分:0)
导入时,您可以使用功能。基本上,函数内的函数,但您也可以在函数内部导入。
def init():
import time
def innerFunc():
time.sleep(.2)
time.sleep(.1)
innerFunc()
init()