1 包(模块包)package

1.1 包的定义

包是将模块以文件夹的组织形式进行分组管理的方法

1.2 作用

分类管理,有利于防止命名冲突
可以在需要时加载一个或部分模块,而不是全部模块

mypack/
├── games
│   ├── contra.py
│   ├── __init__.py
│   └── tanks.py
├── __init__.py
├── menu.py
└── office
└── __init__.py

1.3 包的导入

同模块的导入语句

import 语句

from import 语句

from import *语句

语法:
方法1

import 包名 as 包别名
import 包名.模块名 [as 模块新名]
import 包名.子包名.模块名 [as 模块新名]

方法2

from 包名 import 模块名  [as 模块新名]
from 包名.子包名 import 模块名  [as 模块新名]
from 包名.子包名.模块名 import 变量名  [as 变量新名]

方法3

from 包名 import *
from 包名.模块名 import *

示例

mypack.menu.menu()

1.4 搜素顺序

1) 当前路径

2) sys.pat

2 包中的几个要点

2.1 __all__ 属性

作用

用来记录那些模块或子句需要导入

当用 from 包 import *  语句导入时, 只查找 __all__ 属性列表内的所有模块或子包

位置

要写在 __init__.py

2.2 __init__.py

作用

1. 在包内添加文档字符串

2. 可以设置包的属性(__all__属性)

示例

"""这是游戏包的标题

游戏包里也以说点什么
"""

def play():
    print("正在玩魂斗罗!")
print("contra 模块被导入")

from ..menu import menu
def play():
    print("正在玩坦克大作战!")
def show_menu():
    menu()  # 此方法在 ..menu
print("tank 模块被导入")

该处可为空

"""这是mypack主包的文档字符串

这里还是说点什么吧
"""
__all__ = ['menu']

def menu():
    print("==================")
    print("|                |")
    print("|                |")
    print("==================")
print("menu模块被加载!")

3 包的相对导入

. 代表当前目录

.. 代表上一级目录

... 代表上二级目录

以此类推...

python学习笔记013——包package的更多相关文章

  1. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  2. python学习日记(包——package)

    简述——包 包是一种通过使用‘.模块名’来组织python模块名称空间的方式. 注意: 1. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都 ...

  3. python学习笔记013——模块中的私有属性

    1 私有属性的使用方式 在python中,没有类似private之类的关键字来声明私有方法或属性.若要声明其私有属性,语法规则为: 属性前加双下划线,属性后不加(双)下划线,如将属性name私有化,则 ...

  4. python学习笔记013——模块

    1 模块module 1.1 模块是什么 模块是包含一系列的变量,函数,类等程序组 模块通常是一个文件,以.py结尾 1.2 模块的作用 1. 让一些相关的函数,变量,类等有逻辑的组织在一起,使逻辑更 ...

  5. python学习笔记013——推导式

    1 推导式简介 推导式comprehensions(又称解析式),是Python的一种独有特性. 推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 推导式有三种形式: 1)列表推导式 (li ...

  6. python学习笔记013——内置函数dir()

    1 描述 dir() 函数 不带参数时,返回当前范围内的变量.方法和定义的类型列表: 带参数时,返回参数的属性.方法列表. 如果参数包含方法__dir__(),该方法将被调用. 如果参数不包含__di ...

  7. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  8. Python学习笔记之模块与包

    一.模块 1.模块的概念 模块这一概念很大程度上是为了解决代码的可重用性而出现的,其实这一概念并没有多复杂,简单来说不过是一个后缀为 .py 的 Python 文件而已 例如,我在某个工作中经常需要打 ...

  9. Python学习笔记(十三)

    Python学习笔记(十三): 模块 包 if name == main 软件目录结构规范 作业-ATM+购物商城程序 1. 模块 1. 模块导入方法 import 语句 import module1 ...

随机推荐

  1. 第六章 memcached剖析

    注:本篇博客参考于两本书. <memcached全面剖析>,该书籍市面上应该没有,我传到了百度云盘,链接如下:http://pan.baidu.com/s/1qX00Lti <大型网 ...

  2. Candy leetcode java

    题目: There are N children standing in a line. Each child is assigned a rating value. You are giving c ...

  3. Simplify Path leetcode java

    题目: Given an absolute path for a file (Unix-style), simplify it. For example, path = "/home/&qu ...

  4. Android之PowerManager&BatteryManager

    PowerManager是Android平台中用于管理控制设备电源状态.重启.休眠状态.唤醒等,使用该API会影响到电池的待机时间,所以无非必要,一般不要使用. 在PowerManager中有几个比较 ...

  5. Real-time 3D Reconstruction using Kinect

    http://jiakaizhang.com/project/real-time-3d-reconstruction/ Real-time 3D Reconstruction using Kinect ...

  6. C#.NET常见问题(FAQ)-如何引用定义好的dll文件

    1 添加引用,找到dll文件   2 引用类的名称空间,生成类的实例,调用类的方法,测试OK.     更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com ...

  7. C#.NET常见问题(FAQ)-如何批量增加或取消注释

    选中一批文本之后 批量增加注释:Ctrl+K Ctrl+C 批量取消注释:Ctrl+K Ctrl+U     更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku. ...

  8. ZH奶酪:C语言中malloc()和free()函数解析

    1.malloc()和free()的基本介绍 (1)函数原型及说明 void *malloc(long NumBytes) 该函数分配了NumBytes个字节,并返回了指向这块内存的指针.如果分配失败 ...

  9. 移动端兼容 - faskclick.js

    fasckclick为解决移动端300ms延迟而生 github地址为:https://github.com/ftlabs/fastclick 使用方法: 1. 原生使用(window.onload或 ...

  10. 算法笔记_176:历届试题 最大子阵(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大. 其中,A的子矩阵指在A中行和列均连续的一块. 输入格式 输入 ...