PYCON中国(2018)听讲笔记

今年去参加了下国内的 PyCon 大会,想着这类活动还是应该多支持下。此次大会的分享者们分享了 Python 的语言特性、Python 创新应用(人工智能,大数据,区块链专场)、Python 工程化应用(架构,Web后端,运维专场)以及一些从业经验。其中还有 CPython 的核心开发者 Ezio Melotti 介绍了 CPython 幕后的开发过程,并分享了如何为 CPython 贡献代码。以下为我在与会过程中做的笔记,内容有些散乱,所涉及的内容也没有详细描述,仅作记录用。 Python 语言特性 三元运算符 在 Python 2.5 之前,没有三元运算符,但可以用 and o...

阅读更多

浅谈 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,对警告的处理方式可以灵活的更改,例如忽略或者转变为为异常。警告的处理可以根据警告类别,警告消息的文本和发出警告消息的源位置而变化。对相同源位置的特定警告的重复通常被抑制。 警告控制分为两个阶段:首先,警告被触发时,确定是否应该发出消息;接下来,如果要发出消息,则使用用户可设置的钩子来格式化和打印消息。 警告过滤器可以用来控制是否发出警告消息,警告过滤器是一些匹配...

阅读更多