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. An easier way to debug windows services

    Have you got tired of attaching the Visual Studio debugger to the service application? I got the sol ...

  2. Web开发者不容错过的10段CSS代码

    Web开发技术每年都在革新,浏览器已逐渐支持CSS3特性,并且网站设计师和前端开发者普遍采用这种新技术进行设计与开发.但仍然有一些开发者迷恋着一些CSS2代码. 本文将分享20段非常专业的CSS2/C ...

  3. 五条强化 SSH 安全的建议

    当你查看你的 SSH 服务日志,可能你会发现充斥着一些不怀好意的尝试性登录.这里有 5 条常规建议(和一些个别特殊策略)可以让你的 OpenSSH 会话更加安全. 强化密码登录 密码登录很方便,因为你 ...

  4. ECMAScript5之Object学习笔记(一)

    随着IE的逐步追赶,目前到IE11已经能够很好的支持ECMAScript5标准了,其他的现代浏览器像firefox,chrome,opera就更不用说了. 再加上nodejs使得javascript在 ...

  5. c语言基础,\r, \n, \r\n

    Enumeration (or enum) in C Enumeration (or enum) is a user defined data type in C. It is mainly used ...

  6. Bootstrap全局CSS样式之表格

    .table--基础表格样式. .table-striped--给<tbody>之内的每一行添加斑马条纹样式: .table-bordered--为表格添加边框: .table-hover ...

  7. VS2008:Failed to return new Code Element

    VS2008添加自动化类,报错:   [解决方法1] This can be fixed by installing SP1. Please see  https://connect.microsof ...

  8. [Node.js] Child Process with fork() to handle heavy calculation process

    When build server, if we have a API endpoint requires some heavy calculation process, it will block ...

  9. lenovo E431 win8系统 安装win7

    事由:新买的lenovo e431 原装win8系统.win8系统本来就不好用,又傻傻的装了win10的预览版,丑死不说,还各种驱动不兼容,每次开机都提示不兼容——本人有点洁癖,见不得这种,本想把不兼 ...

  10. An application icon

    The application icon is a small image which is usually displayed in the top left corner of the title ...