通常包总是一个目录,可以使用import导入包,或者from + import来导入包中的部分模块。包目录下为首的一个文件便是 __init__.py。然后是一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。

在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,这里就需要运用包的概念了。包对应于文件夹,使用包的方式跟模块也类似,唯一需要注意的是,当文件夹当作包使用时,文件夹需要包含__init__.py文件,主要是为了避免将文件夹名当作普通的字符串。__init__.py的内容可以为空,一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,全部导出定义过的模块。

可以从包中导入单独的模块。

1). import PackageA.SubPackageA.ModuleA,使用时必须用全路径名

2). 变种: from PackageA.SubPackageA import ModuleA, 可以直接使用模块名而不用加上包前缀。

3). 也可以直接导入模块中的函数或变量:from PackageA.SubPackageA.ModuleA import functionA

import语句语法:

1. 当使用from package import item时,item可以是package的子模块或子包,或是其他的定义在包中的名字(比如一个函数、类或变量)

首先检查item是否定义在包中,不过没找到,就认为item是一个模块并尝试加载它,失败时会抛出一个ImportError异常。

2. 当使用import item.subitem.subsubitem语法时,最后一个item之前的item必须是包,最后一个item可以是一个模块或包,但不能是类、函数和变量

3. from pacakge import *

如果包的__init__.py定义了一个名为__all__的列表变量,它包含的模块名字的列表将作为被导入的模块列表。

如果没有定义__all__, 这条语句不会导入所有的package的子模块,它只保证包package被导入,然后导入定义在包中的所有名字。

python包是:
包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境。
通俗一点:包是一个包含__init__.py 文件的目录,该目录下一定得有这个__init__.py文件和其它模块或子包。

python类、模块、包相关推荐

  1. python 异常 模块 包

    #什么是异常 当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常" #捕获异常 使用try:...except:...来捕获异常, ...

  2. Python导入模块(包)的两种方式 TypeError: 'module' object is not callable

    Python编程时明明在开始处import了相关包,但是调用函数时就报错如下: TypeError: 'module' object is not callable Python中有两种导入包(模块, ...

  3. Python module模块 包 __name__

    模块:一个.py文件就称为一个模块(module) module的好处: •提高代码的可维护性,一个module编写完成,就可以被其它地方引用,不必重复编写,注意模块名应避免与python内置库重名 ...

  4. Python 模块/包的导入以及 import 的用法总结

    Python 模块/包的导入以及 import 的用法总结 一.模块/包 1. 前言 一个以 .py 为后缀的 Python 文件就是一个模块. 包是一个文件夹或一个目录. 每个包都有一个全局定义的配 ...

  5. python定义模块结束语_python-模块定义、导入、优化

    在Python中有一个概念叫做模块(module),比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块. 说的通俗点:模块就好比 ...

  6. Python 进阶_模块 包

    目录 文章目录 目录 模块的搜索路径和路径搜索 命名空间和变量作用域的比较 变量名的查找/覆盖 导入模块 import 语句 from-import 语句 扩展的 import 语句 as 自动载入模 ...

  7. python怎么导入包-Python模块导入与包构建最佳实践

    [TOC] 最开始写程序的时候,都是一个文件里输入几行源码(python 的一个 web 框架bottle就特别强调自己是单文件框架).随着程程式变大变复杂,一个文件很难承载如此多的功能,因此将代码拆 ...

  8. python 必备模块和包_Python_异常和模块

    异常处理 单个异常处理: try: print(num) except NameError: print('没有定义变量') except FileNotFoundError: print('找不到文 ...

  9. python的模块和类_Python模块和类.md

    模块的定义 代码的层次结构 对于python的层次结构一般为包->模块 包也就是文件夹,但是文件夹下必须有文件"init.py"那么此文件夹才可以被识别为包."in ...

  10. 学学python(4):面向对象及类,模块

    1.       关于类的一些说明 1.1.__init__是类的构造函数,和其他语言中的构造函数功能是一样的,python类中还有其他的特殊方法,比如析构函数为__del__,在方法名的前后都有双下 ...

最新文章

  1. additive tree
  2. 第九届河南理工大学算法程序设计大赛 正式赛(ABCDEFGHJKL)
  3. 扫描指定包并解析为BeanDefinition
  4. c语言结构体单元测试,C语言结构体单元练习.doc
  5. 使用 dotnet-monitor 分析.NET 应用程序
  6. self 实例对象-代码详细解释
  7. 基于java的科研信息管理平台
  8. javaweb学生宿舍管理系统
  9. ERP操作手册要不要做?
  10. 使用 Python 进行数据清洗的完整指南
  11. 海康门禁-开,关,常开,常关,授权,清权
  12. 时间序列模型c语言,时间序列分析步骤及sas代码
  13. Linux程序设计(Linux shell编程五)
  14. 【Multisim仿真】LM317-337双路输出可调直流稳压电源电路
  15. java 动态定时提醒_java实现定时提醒功能
  16. 机器学习之你不懂的 sigmoid函数
  17. 【Python 数据科学】分组group by基础
  18. DNA测序也有批次效应?
  19. 学校运动会广播稿计算机,学校运动会广播稿
  20. pm961 mysql_搭建Memcache服务详解

热门文章

  1. 我来出个题:这些事务会不会回滚?大概率你会错!
  2. 皮一皮:沉迷游戏的下场...
  3. 皮一皮:是不是年轻时候的你...
  4. 这是我见过最简单粗暴的辞职书了
  5. 每日一皮:程序员职业服装!
  6. 开学季:当当大促的额外优惠又来啦!150 买 400的书!搓搓搓~
  7. c语言患者住院管理系统,患者住院管理系统 C,C++.doc
  8. 八字喜用神php源码,免费查八字喜用神的软件 通关用神
  9. html 里运行php文件,如何在HTML文件中运行PHP脚本
  10. python向mysql中添加数据标签_用python在MySQL中写入数据和添加数据