zoukankan      html  css  js  c++  java
  • 模块

    一.生成器表达式

    语法跟列表生成式一样,只不过列表生成式,是放在中括号内,生成器表达式是放在小括号内

    g=(i for i in range(10) if i > 5)
    print(g)
    print(next(g))

    二.模块

    1.什么是模块:模块就是一系列功能的集合体

    2.模块分为四个通用的类别:

           1 使用python编写的.py文件

      2 已被编译为共享库或DLL的C或C++扩展

      3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)

      4 使用C编写并链接到python解释器的内置模块

    3.模块的来源:

            1. 内置模块

            2.第三方模块

            3.自定义模块:将程序各部分组件共用的功能提取取出放到一个模块里,其他的组件通过导入的方式使用该模块,该模块即自定义的模块

            其中内置模块和第三方模块都是别人写好的,直接用就可以了

    4.为何要用模块

           内置模块和第三方模块可以直接使用,提升开发的效率,自定义模块可以减少代码冗余

    5.如何用模块

    1.import  模块名

              首次导入模块的三个阶段:

                          1.产生一个模块的名称空间

                          2.执行.py文件中的内容,将产生的名字存放到模块的名称空间中

                          3.在当前的执行文件中存放着模块名,该模块名指向了模块的名称空间

    之后的导入直接使用首次导入的结果即可。

    使用import导入模块的优缺点:

    优点:不会与当前执行文件的名称空间中的名字发生冲突

    缺点:引用模块中的名字必须加前缀(模块名.)

    import spam as sm #改模块名
    print(sm.money)
    import n1,n2,n3 #导入多个模块

    2.from.....import.....

        首次导入模块的三个阶段:

                          1.产生一个模块的名称空间

                          2.执行.py文件中的内容,将产生的名字存放到模块的名称空间中

                          3.在当前的执行文件中拿到的名字,指向了模块的名称空间中相对应的名字

    之后的导入直接使用首次导入的结果即可。

    使用from.....import.....导入模块的优缺点:

    优点:容易与当前执行文件的名称空间中的名字发生冲突

    优点:引用模块中的名字不需要加前缀,直接使用即可

    from spam import money as m  #改money的名字
    print(m)
    
    
    from spam import * #把spam模块中所有的名字都导入进去
    print(read1)
    print(money)
    print(read2)

    6.模块的搜索路径

    查找模块路径的优先级:1.内存  2.内置模块  3.sys.path(环境变量):它是以当前执行文件所在的文件夹为准的

    7.如何区分python文件的两种用途

    def f1():
        print('f1')
    
    def f2():
        print('f2')
    
    if __name__ == '__main__':
        f1()
        f2()
    
    # print(__name__)
    # 当文件被当作执行文件执行时__name__的值为__main__
    # 当文件被当作模块导入时__name__的值为模块名

    三.软件开发的目录规范

    bin文件夹中写的是一些启动文件;

    conf文件夹中写的是一些配置文件;

    lib文件夹中写的是一些自定义模块;

    core文件夹中写的是一些程序的核心功能;

    db文件夹中写的是一些数据;

    log文件夹中写的是一些日志文件;

    Readme文件夹中写的是一些使用说明。

  • 相关阅读:
    增强for循环用法___ArrayList数组实现使用下标最好,LinkedList使用增强型的(转载)
    Java类加载的时机_4种主动引用会触犯类加载+剩下的被动引用不会触发类的加载
    剑指offer_面试题11 数值的整数次方_考察代码的完整性
    深入理解Java虚拟机博客参考目录
    GPU总结(1)
    牛客_Java_值传递(拷贝)不该表原来变量+传引用的话会一起改变
    Java 源码学习线路————_先JDK工具包集合_再core包,也就是String、StringBuffer等_Java IO类库
    centos7 安装jdk1.8
    JPA
    javaScript获取url中的参数
  • 原文地址:https://www.cnblogs.com/wangke0917/p/10064268.html
Copyright © 2011-2022 走看看