浅谈 Python 的模块导入

本文不讨论 Python 的导入机制(底层实现细节),仅讨论模块与包,以及导入语句相关的概念。通常,导入模块都是使用如下语句: import ... import ... as ... from ... import ... from ... import ... as ... 一般情况下,使用以上语句导入模块已经够用的。但是在一些特殊场景中,可能还需要其他的导入方式。例如 Python 还提供了 __import__ 内建函数和 importlib 模块来实现动态导入。动态导入的好处是可以延迟模块的加载,仅在用到模块时才支持导入动作。 运用 __import__ 函数和 impor...

阅读更多

Sqlite 基本概念及使用概述

SQLite 是一个开源的嵌入式关系型数据库,是一个自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 具有如下特点: 无需单独的服务器进程,是无服务器的 不需要配置,无需复杂的安装或管理步骤 数据库存储在一个单一的跨平台的磁盘文件中 非常小的,轻量级的 自给自足的,不需要任何外部的依赖 事务是完全兼容 ACID,允许从多个进程或线程安全访问 支持 SQL92(SQL2)标准的大多数查询语言的功能 使用 ANSI-C 编写的,并提供了简单易用 API 兼容类 UNIX 平台(Linux, Mac OS-X, Android, iOS)和 Windows(Wi...

阅读更多

用 pytest 测试 python 代码

Pytest 是一个比较成熟且功能完备的 Python 测试框架。其提供完善的在线文档,并有着大量的第三方插件和内置帮助,适用于许多小型或大型项目。Pytest 灵活易学,打印调试和测试执行期间可以捕获标准输出,适合简单的单元测试到复杂的功能测试。还可以执行 nose, unittest 和 doctest 风格的测试用例,甚至 Django 和 trial。支持良好的集成实践, 支持扩展的 xUnit 风格 setup,支持非 python 测试。支持生成测试覆盖率报告,支持 PEP8 兼容的编码风格。 基本使用 usage: py.test [options] [file_or_d...

阅读更多

Git 使用札记

Git 是一个优秀的版本控制工具,可以有效、快速的处理大大小小的项目版本管理。日常使用掌握如下图所示的工作流程和命令就足够了。 但要熟练地使用 git,只掌握上图中的命令是不够的。以下是我在使用 git 过程中收集的比较有用的操作和命令。 配置 Git 的配置文件为 .gitconfig,它在用户主目录下~/.gitconfig,针对当前用户是全局的,同时每个项目目录下也可以有一个局部的配置文件,仅针对当前项目有效。 # 显示当前的配置 git config --list # 配置文本编辑器 git config --global core.editor vim # 编辑配...

阅读更多

Python 库打包分发(setup.py 编写)简易指南

Python 有非常丰富的第三方库可以使用,很多开发者会向 pypi 上提交自己的 Python 包。要想向 pypi 包仓库提交自己开发的包,首先要将自己的代码打包,才能上传分发。 distutils 简介 distutils 是标准库中负责建立 Python 第三方库的安装器,使用它能够进行 Python 模块的安装和发布。distutils 对于简单的分发很有用,但功能缺少。大部分Python用户会使用更先进的setuptools模块 setuptools 简介 setuptools 是 distutils 增强版,不包括在标准库中。其扩展了很多功能,能够帮助开发者更好的创...

阅读更多

Git 重置(reset)操作简介

要理解 git reset 需要先了解其在版本管理中用到的三个重要概念,通常被称为三棵“树”,“树” 的实际意思是 “文件的集合”,而不是指特定的数据结构。这三棵树即: 树 含义 HEAD 上一次提交的快照,下一次提交的父结点 Index 预期的下一次提交的快照 Working Directory 工作目录 HEAD 是当前分支引用的指针,它总是指向该分支上的最后一次提交。 这表示 HEAD 将是下一次提交的父结点。 通常,理解 HEAD 的最简方式,就是将它看做 你的上一次提交 的快照。 Index 即索引,通常也被称之为暂存区,是 预期的下一次提交。 当运...

阅读更多

Python 模块简介 -- warnings

Python 通过调用 warnings 模块中定义的 warn() 函数来发出警告。警告消息通常用于提示用户一些错误或者过时的用法,当这些情况发生时我们不希望抛出异常或者直接退出程序。警告消息通常写入 sys.stderr,对警告的处理方式可以灵活的更改,例如忽略或者转变为为异常。警告的处理可以根据警告类别,警告消息的文本和发出警告消息的源位置而变化。对相同源位置的特定警告的重复通常被抑制。 警告控制分为两个阶段:首先,警告被触发时,确定是否应该发出消息;接下来,如果要发出消息,则使用用户可设置的钩子来格式化和打印消息。 警告过滤器可以用来控制是否发出警告消息,警告过滤器是一些匹配...

阅读更多

IPython 基本使用

ipython 是一个 python 的交互式 shell,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数,比默认的 python shell 好用得多。IPython 已经成为用 Python 做教学、计算、科研的一个重要工具 2001 年, Fernando Pérez 为了得到一个更为高效的交互式 Python 解释器而启动了一个业余项目, 于是 IPython 项目诞生了。之后,它逐渐被公认为现代科学计算中最重要的 Python 工具之一。IPython 本身并没有提供任何的计算或数据分析功能, 其设计目的是在交互式计算和软件开发这两...

阅读更多