知行合一
Choose a quality life!

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.软件开发规范:

 

    

 

 

         

 

posted on 2018-08-02 21:45  小米没吃饭  阅读(127)  评论(0编辑  收藏  举报