zoukankan      html  css  js  c++  java
  • 模块

    模块

    模块基础

    模块的定义

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

    包的定义

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

    此文件夹下需要有一个__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__':
    
    
  • 相关阅读:
    获取split分割的最后一个值
    django分页查询
    django中iframe请求报错的问题
    pandas.Series
    NumPy 切片和索引
    继承
    NumPy 从数值范围创建数组
    迭代器iter用法
    numpy.asarray
    NumPy 创建数组
  • 原文地址:https://www.cnblogs.com/heroknot/p/10981535.html
Copyright © 2011-2022 走看看