1.包的概述

1.包是将模块一文件夹的组织形式进行分组管理的方法,一系列模块进行分类管理有利于防止命名冲突

2.包是一个包含多个模块的特色目录,目录下有一个特色的文件__init__.py

3.包的命名规则和变量命名规则一样由字母数字和下划线且不以数字开头组成,推荐使用小写字母加_的命名方式

4.使用import包名可以一次导入包中的所有模块,也可以在需要时加载一个或部分模块而不是全部模块

5.在外界使用包中的模块,需要在__init__.py中指定对外界提供的模块列表,即在__init__.py文件中写入import导入语句

2.包的导入语法

1.如果是直接导入一个包,那么相当于执行了这个包中的__init__文件

2.Python解释器并不会帮你把这个包下面的其他包以及py文件自动的导入到内存

3.如果希望直接导入包之后,所有的这个包下面的其他包以及py文件都能直接通过包来引用,那么要处理__init__文件

import 包名  # 相当于执行了包下面的__init__文件
import 包名 as 包别名
import 包名.模块名 as 模块新名
import 包名.子包名.模块名 as 模块新名
from 包名 import 模块名 as 模块新名
from 包名.子包名 import 模块名 as 模块新名
from 包名.子包名.模块名 import 属性名 as 属性新名
from 包名 import *
from 包名.模块名 import *

3.包目录下的__init__.py文件

__init__.py会在导入包时被自动调用,是常规包内必须存在的文件

__init__.py文件可以编写此包的内容,可以在内部添加包的文档字符串,可以加载此包所依懒的其它模块

4.包的__all__列表

1.用来记录此包中有哪儿些子包或模块需要导入,当用from 包名 import * 语句导入时,只查找__all__中的模块或子包

2.__all__列表只在from 包名 import *语句时起作用;当子包或子包内的模块被导入时,上一层的包也会被先导入

# 实质会先导入mypack,再导入games,再导入contra
import mypack.games.contra

5.包的相对导入

1.概述:
        1.包的相对导入是指包内的模块的相互导入,导入时不能超出包的外部,要避免循环导入

        2.相对导入路径:

            在 from xxx import 语句中, xxx部分可以使用相对路径

            . 代表当前目录

            .. 代表上一级目录

            ... 代表上二级目录

            .... 以此类推

2.语法:

        from 相对路径包或模块 import 属性或模块名

        from 相对路径包或模块 import *

16_Python的包package的更多相关文章

  1. (转)-编写第一个ROS(创建工作空间workspace和功能包package)

    原文网址:http://www.cnblogs.com/liuamin/p/5704281.html 刚接触ROS,学着写了第一个程序,怕以后忘记,就将其步骤记录下来.. 首先你必须保证你电脑已安装配 ...

  2. 编写第一个ROS(创建工作空间workspace和功能包package)

    刚接触ROS,学着写了第一个程序,怕以后忘记,就将其步骤记录下来.. 首先你必须保证你电脑已安装配置好ROS. 1.创建工作空间(workspace) 我们所创建功能包package,应该全部放到一个 ...

  3. Log4j配置详解及不同的包(package)下的日志写入到不同的日志文件下

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt262 以下都是log4j.properties要写入的内容: 一:参数介绍: ...

  4. 模块(modue)和包(package)的概念-import导入模块

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

  5. Java - 25 Java 包(package)

    Java 包(package) 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间. 包的作用 1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2 如同文件夹一样,包 ...

  6. Java学习笔记三十一:Java 包(package)

    Java 包(package) 一:包的作用: 如果我们在使用eclipse等工具创建Java工程的时候,经常会创建包,那么,这个包是什么呢. 为了更好地组织类,Java 提供了包机制,用于区别类名的 ...

  7. ROS知识(3)----功能包package编译的两种方式

    ROS的包编译有两种方法(我知道的),一种是用rosmake,这种方法简单:另一种是用catkin_make,这种方法更方便包的管理和开发.这两种方法都是先建立工作空间workspace(类似于vs下 ...

  8. Python(模块(modue)、包(package))

    ''' 一 模块 模块一共三种: python标准库 第三方模块 应用程序自定义模块 模块两种执行方式: 1 用于启动执行 2 用于被调用执行 key:import module: 将执行文件(mod ...

  9. IntelliJ IDEA 识别一个类所属的jar包package

    IntelliJ IDEA 识别一个类所属的jar包package 按住ctrl,鼠标移动上去,不要点击: 有木有快捷键? ctrl+alt+B直接就过去了:需要再跳回来:

随机推荐

  1. 016_go语言中的递归

    代码演示 package main import "fmt" func fact(n int) int { if n == 0 { return 1 } return n * fa ...

  2. C语言学习笔记之杂七杂八容易忽略的点(以后看到一直补充)

    1.变量名可以由 数字 字母 下划线 组成.数字不能用在开头 2.取余%:  只能是整数取余 3.sizeof是个关键字  不是函数 4.printf("%10d\n",a); 共 ...

  3. Nginx定时日志切割

    Nginx定时日志切割 现有的日志都会存在access.log文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维 人员查看,所以我们可以通过把这个大的日志文件切割为多份不 ...

  4. Linux内核之 进程管理

    正如上一篇我们提到过,进程是Linux系统中仅次于文件的基本抽象概念.正在运行的进程不仅仅是二进制代码,而是数据.资源.状态和虚拟的计算机组成.我们今天主要介绍进程的概念,组成,运行状态和生命周期等. ...

  5. day3 基本语句

         代码缩进为一个tab键  就是四个空格           断点   在代码首行前空白处,双击  然后点右上角臭虫  然后点下面箭头朝下的 1.if 语句  if 判断条件:         ...

  6. eric4 中pyqt 字符串 输入 获取

    在eric4中使用pyqt需要注意: 输入 中文 时,前面加 u ,例如: from PyQt4.QtGui import * from PyQt4.QtCore import * QMessageB ...

  7. 如何选择一台适合Java开发的电脑

    前言 最近在群里有同学求推荐Java开发用的电脑,所以胖哥就出个简单的专题,用我贫瘠的电脑知识来帮助大家选择适合开发的电脑配置.因为家里的主机已经带不动两个 IDEA 了,更别提开个 Docker 啥 ...

  8. Python开发的入门教程(二)-List和Tuple类型

    介绍 本文主要介绍Python中List和Tuple类型的基本知识和使用. Python创建list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的 ...

  9. ubuntu apt-mirror 同步源到本地

    1.下载 apt-mirror apt-get install apt-mirror 2.修改配置 root@wangjq:/wangjq# cat /etc/apt/mirror.list##### ...

  10. Robot Framework(4)——Selenium2Library关键字

    在第一讲的时候,已经安装了Selenium2Library这个库,这一篇主要来整理介绍一下Selenium2Library中的常用关键字,为我们之后的web自动化打好基础 一.browserManag ...