循环导入、模块搜索路径、软件开发、包的使用

1、循环导入

循环导入:循环导入问题指的是在一个模块加载/导入的过程中导入另外一个模块,而在另外一个模块中又返回来导入第一个模块中的名字,由于第一个模块尚未加载完毕,所以引用失败、抛出异常,究其根源就是在python中,同一个模块只会在第一次导入时执行其内部代码,再次导入该模块时,即便是该模块尚未完全加载完毕也不会去重复执行内部代码
解决方案一:
    # 文件:m1.py
    print('正在导入m1') # 把代码放在导入上边,让它先加入内存中
    x='m1'
    from m2 import y
    # 文件:m2.py
    print('正在导入m2')
    y='m2'
    from m1 import x
    # 文件:run.py内容如下,执行该文件,可以正常使用
    import m1
    print(m1.x)
    print(m1.y)
解决方案二:
    # 文件:m1.py
    print('正在导入m1')
    def f1():
        from m2 import y
        print(x,y)
    x = 'm1'
    # 文件:m2.py
    print('正在导入m2')
    def f2():
        from m1 import x
        print(x,y)
    y = 'm2'
    # 文件:run.py内容如下,执行该文件,可以正常使用
    import m1
    m1.f1()

2、搜索模块的路径与优先级

1.搜索模块的优先级:内存===》内置====》sys.path
例如:
    import sys
    sys.path.append(r'/pythoner/projects/') #也可以使用sys.path.insert(……)
    import foo #无论foo.py在何处,我们都可以导入它了

3、软件开发目录

路径:E:\student\python student\pycharmproject\ATM
posted @ 2021-08-16 16:10  迷恋~以成伤  阅读(43)  评论(0)    收藏  举报