1.模块

一个.py文件就是一个模块。这个文件的名字是:模块名.py。由此可见在python中,文件名和模块名的差别只是有没有后缀。有后缀是文件名,没有后缀是模块名。

每个文件(每个模块)都是一个独立的名称空间,也就是说可以在两个(多个)文件中出现同名的函数。

import,from.....import...两种导入的区别:

1.import

  按模块区分拥有独立的命名空间,要是想使用模块中的函数需要使用      模块名.函数名       的方式来使用。

  可以使用import.....as....为导入的模块起一个别名,在使用这个模块中的函数时,可以使用     别名.函数名。

2.from.....import...

  将模块的内容导入到当前的命名空间中,直接使用名字就行。

  如果,被导入的模块和当前的文件中有同名的函数,那么后者将会覆盖前者。

  什么意思呢?

    这个时候就要看from.....import...  (from后面跟的是模块名,import后面跟的是具体的函数名,或是模块中具体的变量名等)出现的位置了,如果出现在当前模块函数之前,那么当前模块的函数会覆盖导入的函数,如果出现在当前函数定义之后,那么导入的函数会覆盖当前模块中的函数。

    from.....import......可以接受as为导入的函数或是变量起别名,同样可以导入多个函数、变量等。

    from......import * 不建议使用这个方式导入模块,可能覆盖之前同名的函数等(这种方式不会导入以_开头的变量或函数)。

3.共同点

  python中不支持重新加载或卸载之前的导入的模块,因此如果修改被导入的模块,需重新启动python程序或者是使用重新加载语句来实现   import importlib; importlib.reload(modulename)  。

  当一个模块被导入时,他的全局变量名__name__ 为模块名,当这个模块当做脚本执行时,全局变量名__name__为 __main__。

  模块的查找顺序:内存中已经加载的模块->内置模块->sys.path路径中包含的模块。(所以我们自己开发模块时,注意不要和已有的模块名重复)

2.包

包的本质就是一个包含__init__.py文件的目录。是一种通过使用‘.模块名’来组织python模块名称空间的方式,也就是说在在导入包时遇到带 点 的,这就是关于包的导入语法。

导入包,本质上是导入了包中的__init__.py文件。

包的导入形式也有,import 和 from.....import......两种形式。

3.提示

   import * 会导入除了以 _ 开头的所有变量,但是如果定义了 __all__,那么会导入 __all__ 中列出的东西。

   __all__是模块中的全局变量,列表

python中模块和包的概念的更多相关文章

  1. python中模块与包的概念

    在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多 ...

  2. python中模块,包,库的概念

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  3. python中模块,包,库

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  4. Python中 模块、包、库

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  5. python中模块、包、库的区别和使用

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  6. python中模块与包

    #模块与包#在实际项目中,代码的行数可能上万,甚至上几十万,不可能在一个页面内完成,需要多个程序员通力写作#张三,李四,王五......每天收集大家的代码做一个版本,类似乐高积木一样,每个人负责一部分 ...

  7. python 中 模块,包, 与常用模块

    一 模块 模块:就是一组功能的集合体, 我们的程序可以直接导入模块来复用模块里的功能 导入方式 一般为 : import 模块名 在python中, 模块一般分为四个通用类别 1使用python编写. ...

  8. Python中模块与包的导入(朴实易懂版的总结)

    这几天,被python包与模块的导入问题,折磨的不行,以前想的很简单,其实不然,经查资料研究,特总结如下: 基本注意点 模块:一般指一个py文件:包:含有许多py文件的文件夹,含有 或不含有(Pyth ...

  9. (Python )模块、包

    本节开始学习模块的相关知识,主要包括模块的编译,模块的搜索路径.包等知识 1.模块 如果我们直接在解释器中编写python,当我们关掉解释器后,再进去.我们之前编写的代码都丢失了.因此,我们需要将我们 ...

随机推荐

  1. makefile自动编译

    1.格式:  目标:依赖 规则    规则前有一个tab键 ,缺少tab键出错,使用空格替代也不可以 (1). 例子: 编写makefile 编译 main.c ,fun.c , fun.h test ...

  2. Linux入门命令

    ####常用的目录 /主目录 ① /root:存放启动Linux时启动的核心文件,包括一些连接文件以及镜像 ② /bin:binary的缩写,存放经常使用的命令 ③ /dev:Device(设备)的缩 ...

  3. Ansible的roles标准化与Jenkins持续集成(三)

    Ansible的roles标准化与Jenkins持续集成(三) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打 ...

  4. 【CSS】input 框的一些事情

    1.input框光标太长与不居中的问题 如果input框height:40px 为了字体垂直居中line-height也设为40px 问题来了,这样光标在刚刚focus时候是占据整个input框并且输 ...

  5. echarts.min.js的引入

    (1)使用地址引入 <script src="https://cdn.bootcss.com/echarts/3.7.1/echarts.min.js"></sc ...

  6. Aajx调用千千音乐数据接口

    前端展示截图https://images.cnblogs.com/cnblogs_com/LiuFqiang/1429011/o_D09Q55)EL1VFEIJ(GKI%7D%7DY5.png < ...

  7. win10配置jdk环境变量及遇到的坑

    第一步.在系统变量中新增变量命名JAVA_HOME,值为jdk的安装目录 JAVA_HOME C:\Program Files\Java\jdk1.8.0_231 第二步.在系统变量中增加path的值 ...

  8. vue v-modle修饰符.number .trim

    语法糖: 在不影响功能的情况下,添加某种方法实现同样的效果,从而方便程序开发. .number:可以将输入转换成Number类型,否则虽然输入的是数字,但它的类型其实是String. .trim:自动 ...

  9. IntelliJ IDEA下载地址

    http://www.jetbrains.org/display/IJOS/Download

  10. C++ STL(一)介绍及string

    STL: C++标准模板库的简称,它是C++的一部份.标准C++库的所有的标识符都是在一个名为std的命名空间中定义的 在使用STL中相关模板时,需要包含相关头文件,然后using namespace ...