[快学Python3]模块和包

模块

在Python中模块可以理解为颗粒度更大的组织方式,其中可以包含类、函数、变量等等资源。

而为了更好的把一些基础服务提供给大家应用,Python提供了大量的标准模块,以及大量开源的第三方模块。

我们先看一下模块导入的基本格式:

# 方式一

# 直接导入整个模块
import 模块名

# 例如导入sys模块
import sys


# 方式二

# 从模块中导入指定的类、方法等资源
from 模块名 import 模块/类/方法/变量

# 例如从sys中导入path
from sys import path


# 方式三

# 将模块中所有资源都导入
# 少用
from 模块 import *

包是一种管理Python模块命名空间的形式,采用".模块名称"。

例如一个模块的名称为X.Y,那么表示一个包X中的子模块Y。

下面我们给出一个可能的包结构组织方式:

autoTest/           # 顶层包
    __init__.py     # 初始化autoTest包    
    log/            # 日志管理子包
        __init__.py
        htmlLogger.py
        xmlLogger.py
        ...
    formats/        # 文件解析器子包
        __init__.py
        excelParser.py
        xmlParser.py
        htmlParser.py
        ...
    driver/         # 自动化测试驱动子包
        __init__.py
        wbDriver.py
        httpDriver.py
        ...
    
    ...
    
auto.py     # main入口

下面我们演示在auto.py导入autoTest中的模块,请看下述代码示例:

# -*- coding:utf-8 -*-

__author__ = u'苦叶子'

# 导入wbDriver
from autoTest.driver import wbDriver


# 如果wbDriver.py中有wbDriver类
# 那么可以这样导入wbDriver类
from autoTest.driver.wbDriver import wbDriver

if __name__ == "__main__":
    pass

小结

对于模块和包先分享这些基础知识,对于更深入的大家可以参阅官方文档或其他书籍。

总而言之,模块和包体现的是一种组织思想,有好的组织才能有好多架构设计,有好的架构设计才能有好的编码质量。

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2017-06-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏自动化测试实战

flask第十篇——url_for【3】

2336
来自专栏前端桃园

ES6之路之模块详解

1303
来自专栏哲学驱动设计

OEA ORM 框架中的冗余属性设计

OEA 框架提供了多种方式来优化分布式数据查询的性能,本篇将会说明如何以声明 OEA 冗余属性的方式,来实现轻量级的数据冗余,以减少关联查询次数及网络数据传输量...

2329
来自专栏极客编程

基于Node.js的自动化工具Gulp

gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;...

1721
来自专栏FreeBuf

Flask Jinja2开发中遇到的的服务端注入问题研究

0×00. 前言 作为一个安全工程师,我们有义务去了解漏洞产生的影响,这样才能更好地帮助我们去评估风险值。本篇文章我们将继续研究Flask/Jinja2 开...

2265
来自专栏Java帮帮-微信公众号-技术文章全总结

day27.MongoDB【Python教程】

集合:类似于关系数据库中的表,储存多个文档,结构不固定,如可以存储如下文档在一个集合中

1103
来自专栏LEo的网络日志

python技巧分享(五)

28810
来自专栏各种机器学习基础算法

php类的自动载入(lazy load)

类的自动载入 一、require时代(手动载入): 在一些以前的项目,或者是一些小型的项目里面,一般来说文件的载入一般有两种办法: a.require b.in...

2908
来自专栏Vamei实验室

Linux从程序到进程

计算机如何执行进程呢?这是计算机运行的核心问题。即使已经编写好程序,但程序是死的。只有活的进程才能产出。我们已经从Linux进程基础中了解了进程。现在我们看一下...

2199
来自专栏个人随笔

房上的猫:java中的包

包  1.作用:   (1)包允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件   (2)防止命名冲突:     java中只有在不同包中的类...

3877

扫码关注云+社区

领取腾讯云代金券