• 模块初阶


    1模块:   龟叔这个python内部有些功能无法完成,需要借助已经实现了的函数或者类来完成这些功能.引入了模块这个概念

                  模块的格式::    别人写好的一组功能:     包含文件夹py文件C语言写好并编译好的一些文件dll结尾的文件

    2.引入的好处:(1)  分类管理方法,  (2) 节省内存  (3)提供更多的功能

    3,分类   (1)内置模块:             安装python解释器的时候跟着装上的那些方法

                  (2)第三方模块/扩展模块     没在安装python解释器的时候安装的那些功能

                  (3)自定义模块                 你写的功能如果是一个通用的功能,那你就把它当做一个模块

    4,PEP8规范:  

    要导入一个py文件的名字,但是不加.py后缀名

    模块的名字必须要满足变量的命名规范,     一般情况下 模块都是小写字母开头的名字

    所有的模块导入都应该尽量放在这个文件的开头

    模块导入顺序:(1)先导入内置模块       (2)再导入第三方模块     (3)最后导入自定义模块

    6,模块的倒入方式

        (1) import   模块名                   理解: 加载模块一次,模块内的所有变量名字(包括变量,函数,或者类),都可以通过模块来引用,多次引用没有意义,不会重新加载模块

          调用方法:   模块名.变量名     =====>变量名:   模块名.变量名       函数名:   模块名.变量名 ()          类名:    模块名.变量名()    实例化对象

           空间变化:          名称空间都是各自独立的,只不过通过模块名建立一种引用关系

             重命名:           引入的模块变量名被修改,调用的时候就用新的变量调用   用    as   修改,修改后的变量名与被调用的模块重新建立引用关系

           小技巧但不建议用:            ====>            一行倒入多个模块,模块名之间用逗号隔开 

        (2)from  模块名  import  变量名        理解:加载一次模块,指定引用模块内模块内的某个变量名(包括变量,函数,或者类),可以引用多个不同的变量

             调用方法     =====>    :变量名:   直接用            函数名:  变量名()          类名:  变量名()   实例化对象

             空间变化:   名称空间都是各自独立的,只不过通过变量名建立一种与模块内的变量名的引用关系    注意:本py文件命名时最好不要重复命名.这样会破坏引用关系

             重命名:    引入的模块变量名被修改,调用的时候就用新的变量调用   用    as   修改,修改后的变量名与被调用的模块重新建立引用关系

             from 模块名  inport *    这种格式的导入模块,直接导入模块内的所有变量名 ,通过内置命令可以控制需要用的变量名固定格式如下:

                                               __all__ = ['login','高永杰']    列表内得而所有元素都是可以

    6:  模块倒入效率:  当导入文件的时候,python解释器就会在文件所在目录的__pycache__ 下生成一个编译好的pyc文件,这个文件具有通用型,可以跨平台使用,以后在导入                                   这个模块的时候就省时间

         模块的循环引用:  模块的倒入过程,千万注意不能形成环形引用,     和两个模块互相引用     技巧:可以画图,排除是否有循环引用

    7; 重点:      __name__     本质是个内置的私有变量名,str类型的.     

        这里要提前了解一个概念<sys.moudles这是一个全局字典,python启动时,会记录下导入的模块,是一个字典,__main__这个字符串key.永远与当前文件的py文件是一个键值对  

         特性:    当文件以脚本运行时,print(__name__ )就是__main__   这个结果格式也是字符串

                     当文件以模块被引用时:  模块内的__name__   就会变成模块名, 这样配合sys.moudles就能调用该模块的内存地址

                      也正是引文这种特性,一般在编写代码时,为了在被调用时不打印不必要的内容,常用以下格式的固定内容来过滤内容

                      if  __name == '__main__':

                              xxxxxxxx()

    8,模块的搜索路径:内存中已经加载的模块->内置模块->sys.path路径中包含的模块

                                     我们自定义的模块名不应该与系统内置模块重名

      内置函数     print(dri())   这样可以查看模块内所有定义的名字,返回一个有序的字符串列表  

    import builtins
    dir(builtins)          可以查看内置函数或者变量的名字
    注意:::sys.path 从第一个路径是当前执行文件的所在的文件夹开始寻找

    9: 包:   由各种py文件组成的带有__init__.py的文件夹

            导入包相当于执行了包下面的   __init__.py 文件

                         通过在__init__文件内设计导入模块,来完成实际需要导入的模块

         绝对路径:      copypath

         相对路径:使用了相对导入的模块只能被当作模块执行,不能被当作脚本执行

    10.软件开发规范:

        

             

  • 相关阅读:
    PTA 乙级 1064 朋友数 (20分) C++
    关于Symbol.iterator 学习笔记
    JS函数传递参数是是按值传递
    使用Nginx做反向代理的配置
    动态修改svg的颜色,svg做背景色时候修改颜色
    macos停止MySQL服务
    git-flow-avh的使用过程
    appium+rf APP自动化问题七----点击图片下方的文字无法实现页面跳转
    appium+rf 问题六--appium setting和unlock在设备上重复安装
    python3报错---Error in sitecustomize; set PYTHONVERBOSE for traceback: NameError: name 'reload' is not defined
  • 原文地址:https://www.cnblogs.com/laogao123/p/9410365.html
Copyright © 2020-2023  润新知