• 模块1.0


    模块化

    Python中只有一种模块对象类型

    模块module,指的是Python源代码文件

    包package,指的是模块组织在一起的包和包同名的目录及其相关文件

    模块的四种形式

    1. 内置模块:Python解释器自带的模块
    2. pip安装的模块:pip install 模块名
    3. 自定义模块:自定义模块

    导入语句

    导入非顶级模块,只将其顶级模块名称加入到本地名词空间中.导入的模块必须使用完全限定名称来访问.

    如果使用as ,as 后的名称直接绑定到导入的模块对象,并将该名称加入到本地名词空间中.

    • 找到from 子句中指定的模块,加载并初始化(不是导入)
    • 对于import子句后的名称
      • 先查from子句导入的模块是否具有该名称的属性
      • 如果内有,则尝试导入该名称子模块中的同名模块
      • 还没找到,抛出Import Error异常
      • 之歌名称保存到本地名词空间中,如果使用了as语句,则使用as子句后面的名称

    自定义模块

    1. 模块名就是文件名

    2. 模块名必须符合标识符要求

    3. 不要使用系统模块名,避免冲突

    4. 通常模块名全小写,下划线分割

    模块搜索顺序

    从当前-->局部-->全局-->内置

    1. 程序主目录,程序运行的主程序脚本所在的目录

    2. PYTHONPATH目录,环境变量PYTHONPATH设置的目录也是搜索模块的路径

    3. 标准库目录,Pythoon自带的库模块所在的目录

    模块运行

    import time
    #1. 开辟内存空间,内存空间命名为time
    # 2. 把time.py中的所有代码读入名称空间,然后运行
    # 3. 通过time.方法名使用time模块中的方法
    

    优点:永不冲突

    缺点:导入麻烦

    from time import sleep
    # 1. 开辟内存空间,内存空间命名为time
    # 2. 把time.py中的所有代码读入名称空间,然后运行
    # 3. 把sleep()读入import和from...import.py中,因此可以直接使用方法名
    from time import * #表示导入time下所有方法
    

    优点:调用省事

    缺点:容易发生冲突

    if __name__ == '__main__':
    

    上语句常用于模块中功能检测,

    其中,当运行文件为当前文件时,__name__参数默认值为_main_;当调用运行文件外的模块时,__name__参数默值为模块名(默认就意味着可以更改,但是没必要)

    1. 此功能为模块测试功能:测试本模块内部的函数,类
    2. 避免主模块变更的副作用:顶层代码,没有封装,主模块使用没有问题.一旦有了新的主模块,当前模块要被导入,由于源代码没有封装,一并执行
  • 相关阅读:
    开源项目之Android StandOut(浮动窗口)
    小智慧7
    安卓学习
    asp.net学习Request和Response的其他属性
    bash中的转义
    POJ 1833 排列
    Django点滴(四)ORM对象存取
    POJ 1681 Painter's Problem
    linux2.6.32在mini2440开发板上移植(21)之WebServer服务器移植
    [gkk传智]static与多态及向下向上转型,及多态调用总结
  • 原文地址:https://www.cnblogs.com/agsol/p/11594545.html
Copyright © 2020-2023  润新知