• 模块


    模块

    模块基础

    模块的定义

    模块就是存放一堆函数的文件

    包的定义

    把一堆是模块的文件放在一个文件夹,这个文件夹就是包

    此文件夹下需要有一个__init__.py文件

    模块的优势

    直接使用第三方模块,拿来主义

    把公共功能做成自定义模块,让各个组件调用

    import & from ... import ...

    需要了解两者的区别

    篇幅有限,这里省略100字……

    循环导入问题

    为什么会有循环导入问题?

    模块a需要导入模块b中的b1变量来生成a1变量

    模块b需要导入模块a中的a1变量来生成b1变量

    两者互相牵制,故产生了此问题

    # 模块a的内容
    import b
    
    a1 = b1
    
    print(a1)
    
    # 模块b的内容
    import a
    
    b1 = a1
    
    print(b1)
    
    
    # 报错
    # NameError: name 'b1' is not defined
    
    

    解决方法

    # m1.py
    def f1():
        from m2 import y
    x = 10
    
    
    f1()
    
    
    # m2.py
    def f2():
    	from m1 import x
    y = 20
    
    
    f2()
    

    模块的搜索路径

    导入模块时查找模块的顺序是:

    1. 先从内存中已经导入的模块中寻找
    2. 内置的模块
    3. 环境变量sys.path中找

    Python文件的两种用途

    如果不希望文件被当做模块导入时,执行某些代码,可以把代码放在如下的判断语句内

    if __name__ == '__main__':
    
    
  • 相关阅读:
    bzoj 1858 线段树
    bzoj 1877 最小费用流
    bzoj 1833 数位dp
    Codeforces Round #285 (Div. 1) B
    HDU2028 Lowest Common Multiple Plus
    HDU5706 GirlCat
    HDU2022 海选女主角
    687E: TOF
    687D: Dividing Kingdom II
    687D: Dividing Kingdom II
  • 原文地址:https://www.cnblogs.com/heroknot/p/10981535.html
Copyright © 2020-2023  润新知