python导入模块注意事项

同一模块只导入一次

创建utils.py,内容如下:

print('-----utils.py----')
def add(a,b):
    return a+b

创建test1.py,内容如下:

import utils

创建test2.py,内容如下:

from utils import add

创建main.py,内容如下:

import test1.py
import test2.py

执行main.py,结果如下:

-----utils.py----

虽然test1.py和test2.py分别导入utils.py模块,但只打印了一次-----utils.py----,说明 同一模块只导入一次

不要 互相导入 和 调用

创建a.py和b.py

a.py内容如下:
导入b模块,并且调用了b模块的函数

import b

b.test_b()

b.py内容如下:
导入a模块

# 关键代码,导入a模块
import a

def test_b():
    print("b.py的test_b()")

执行a.py文件,报错如下:

AttributeError: module 'b' has no attribute 'test_b'

如果将b.py的代码import a移除掉,就可以正常运行

自定义模块名不要与内置模块名同名

创建time.py,内容如下:

def test():
    print("测试")

创建main.py,内容如下:

import time
time.sleep()

执行main.py文件报错,因为在导入时,优先 导入 当前工程的time.py ,不在导入内置模块time.py


原文出处:/show_1EF47mOQ3Viy.html