zoukankan      html  css  js  c++  java
  • 模块一

    一、生成器表达式


      统计文件中字符的个数:
      #a.txt
      # hello
      # world

      with open('a.txt',mode='rt',encoding='utf-8') as f:
        res = sum(len(line) for line in f)
        print(res)

      会得到11,其中包括换行符

    二、模块的基础知识

      1.什么是模块


        模块就是一系列功能的集合体

      2.模块的四个通用类型


        2.1 使用python编写的.py文件
        2.2 已被编译为共享库或DLL的C或C++扩展
        2.3 把一系列模块组织到一块的文件夹,文件夹下有一个__init__.py文件,该文件夹称之为包
        2.4 使用C编写并链接到python解释器的内置模块

      3.模块的三种来源


        3.1 内置模块
        3.2 第三方模块
        3.3 自定义模块

      4.为何要用模块


        4.1 使用内置模块或者第三方模块的好处是:拿来主义,极大的提升开发效率
        4.2 使用自定义模块的好处是:将程序各部分组件共用的功能提取出来放到一个模块里,其他的组件通过导入的方式使用该模块,该模块即自定义的模块,好处是可以减少代码冗余

    三、模块import的使用

    1、 首次导入模块会发生三件事


      重复导入会直接引用内存中已经加载好的结果

      1.1 会产生一个模块的名称空间
      1.2 执行spam.py文件的内容,将产生的名字丢到模块的名称空间里
      1.3 在当前执行文件中拿到一个名字spam,该名字指向模块的名称空间

      #spam.py
      #money=1000

      #aaa.py
      import spam
      money=10
      print(spam.money)

      执行的结果:1000

    2、为模块起别名 as


      对编写可扩展的代码很有用
      import spam as sm
      print(sm.money)
      和print(spam.money)是一样的



    3、在一行导入多个模块

      import spam,os,time
      中间用逗号隔开就好


    三、from...import...的使用



    1、 from spam import money,read1


      意思就是可以调用spam中的money和read1
      和import一样,首次调用会发生同样的三件事,支持as,支持一行导入多个名字

    2、 from...import...和import对比


      import:

        优点:指名道姓地问某一个名称空间要名字,不会与当前执行文件名称空间中的名字冲突
        缺点:引用模块中的名字必须加前缀(模块名.),使用不够简洁

      from...import:
        优点:引用模块中的名字不用加前缀(模块名.),使用更为简洁
        缺点:容易与当前执行文件名称空间中的名字冲突

    3、from...import...*


      from spam import * 把spam中所有的不是以下划线(_)开头的名字都导入到当前位置

      可以使用__all__来控制*(用来发布新版本),在spam.py中新增一行:
      __all__=['money','read1'] 在另外一个文件中用from spam import *就这能导入列表中规定的两个名字


    四、模块的搜索路径

      查找模块的优先级:


        1.内存
        2.内置模块
        3.sys.path(重点:是以执行文件为准)

    五、区分python文件的两种用途

      print(__name__)
      当文件被当作执行文件执行时__name__的值为__main__
      当文件被当作模块导入时

      作用:用来控制.py文件在不同的应用场景下执行不同的逻辑
      if __name__ == '__main__':


    六、软件开发的目录规范

    例如:我们要写一个ATM程序
      ATM 根目录
        start 启动代码
        conf文件 内放配置文件
          seeting 代码
        lib 自定义模块 (和业务无关)
          common 代码
        core 核心代码文件 (和业务相关)
          src 代码
        db 数据文件 (用户信息)
        log 日志文件
        readme.txt 软件介绍

  • 相关阅读:
    异象石(引理证明)
    Codeforces Round #664 (Div. 2)
    2020 年百度之星·程序设计大赛
    Codeforces Round #663 (Div. 2)
    Codeforces Round #662 (Div. 2)
    相等运算符
    Unicode编码
    算术运算符
    强制类型转换到Boolean
    强制类型转换到Number
  • 原文地址:https://www.cnblogs.com/zhangxin-/p/10066521.html
Copyright © 2011-2022 走看看