博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python day12
阅读量:5818 次
发布时间:2019-06-18

本文共 1222 字,大约阅读时间需要 4 分钟。

一 模块

  模块是一系列功能的集合体,常见的模块形式分为三类:

    1 自定义模块

    2 第三方模块

    3 内置模块

   模块的四个通用类别

    l 一个py文件就是一个模块

    ll 一个包含有_init_.py文件的文件也是一个模块

    lll 已被编辑为共享库或DLL的C或C++扩展

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

 

 二 为什么要用模块

    1 用第三方模块或者内置模块是一种拿来主义,可以极大提高开发效率

    2 自定义模块可以减少代码冗余 将程序各部分组件共用的功能提取取出放到一个模块里,其他的组件通过导入的方式使用

  三 如何用模块:   将模块导入到执行文件run.py中查看

    4 首次导入模块会发生三件事:                                                                    

     l 会产生一个模块的名称空间

     ll 执行spam.py文件的内容,将产生的名字丢到模块的名称空间里

     lll 当前执行文件中拿到一个名字spam,该名字指向模块的名称空间

      若为from  模块名  import ...则拿到一个spam中的定义的函数的名字如read1,其指向模块的名称空间中的read1

      当模块名过长时,可用缩写代替,其格式为 import  模块名  as  缩写

      需注意,模块名为纯小写加下划线

  import 

    优点:引用模块的名字必须加前缀(模块名)指名道姓的问某一个名称空间要名字不会与当前名称空间中的名字冲突

    缺点:引用模块中的名字必须加前缀(模块名)不够简洁

 form....import

    优点:引用模块中的名字不用加前缀 使用更简洁

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

    如果把一个功能拿到文件外单独当作一个模块,而且使用时不能改变它的调用方式,或者追求简洁,使用from...import 的导用方式,但是要注意有无名称冲突

     或者run文件在根目录,src在子文件夹core内,不改变环境变量,就需要使用from core import src 导入src模块,再用src.func1() 的方式调用功能。

 

 四 模块的搜索路径

查找模块路径的优先级

1.内存

2.内置模块

3.sys.path(是以执行文件为准的)其第一个路径为执行文件所在文件夹

若所找的文件所在文件夹与执行文件所在文件夹同属一个根目录(即它们为同级时),用import syssys.path.append(r'所找文件所在地址/目录')

注意:若写的程序,只有一个执行文件,其它的文件虽然也可能导入模块,但是参照的环境变量是以执行文件为参照

 

区分python文件的两种用途__name__

1.用途

I.直接右键运行,当作执行文件

II.当作模块被导入

2.区分

I.当文件被当作执行文件时,__name__的值为__main__

II.当文件被当作模块导入时,__name__的值为模块名

 

六 软件开发的目录规范

 

    

  

   

-

转载于:https://www.cnblogs.com/zhouyuquan/p/10071343.html

你可能感兴趣的文章
[分享]Ubuntu12.04安装基础教程(图文)
查看>>
WCF
查看>>
django 目录结构修改
查看>>
win8 关闭防火墙
查看>>
Android实例-录音与回放(播放MP3)(XE8+小米2)
查看>>
CSS——(2)与标准流盒模型
查看>>
MYSQL 基本SQL语句
查看>>
C#中的Marshal
查看>>
linux命令:ls
查看>>
Using RequireJS in AngularJS Applications
查看>>
hdu 2444(二分图最大匹配)
查看>>
shell编程笔记六:实现ll命令
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
[nodejs] nodejs开发个人博客(五)分配数据
查看>>
《Linux内核修炼之道》 之 高效学习Linux内核
查看>>
Java数据持久层框架 MyBatis之API学习九(SQL语句构建器详解)
查看>>
DevOps 前世今生 | mPaaS 线上直播 CodeHub #1 回顾
查看>>
iOS 解决UITabelView刷新闪动
查看>>
让前端小姐姐愉快地开发表单
查看>>
Web前端JQuery入门实战案例
查看>>