在导入的文件中导入本地

时间:2017-04-05 00:09:16

标签: python python-3.x module

所以这对你来说可能听起来很奇怪。假设我有两个文件module.pyscript.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

如何避免这种情况发生?

如果有这样的重复问题,请告诉我。

2 个答案:

答案 0 :(得分:4)

最简单的答案是避免使用from module import *。除了交互式提示之外,它在任何地方都是不值得的。

下一个答案是在module.py中添加__all____all__应该是字符串列表。字符串应该是您要导出的内容的名称。例如:

module.py

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()