【专题】Python 编程语言

2010-10-17 topic language python

Python 是一种解释型语言,提供了跨平台的支持,可以快速开发一些脚本,随着 AI 的兴起,提供了一些常见的开发框架,这里详解介绍 Python 的使用。

python logo

通常当我们讨论 Python 时,指的是 Python 语言以及 CPython 实现。而实际上 Python 只是一种语言的规范,可以根据该规范使用不同的语言去实现相应的解析器,除了 CPython 之外,常见的还有 PyPy、Jython、IronPython、MicroPython 等。

CPython 通过 C 语言实现,也是目前使用最为广泛的版本,虽然 PyPy 现在的发展势头不错,不过估计短时间内还是不会替代 CPython。CPython 也需要编译 (编译成字节码),然后运行,其核心实际上是一个字节码解析器 (Bytecode Interpreter),用于模拟堆栈操作,或者称之为 Virtual Stack Machines。

如果没有特殊说明的话,在此特指 CPython;另外,比较想提一下的是 MicroPython,这是一个用于微控制器的 Python 实现 ^_^

Just More Pythonic ~~~

CPython

也就是通过 C 语言实现的 Python 规范,也是目前使用最为广泛的版本,此时,包含了 Python2 以及 Python3 两个版本,而且两个版本的特性差别很大,并不兼容。

这里主要介绍 Python3 的使用,其中可能会有部分介绍 Python2 。

环境准备

  • 环境准备 在 Linux、Windows 中如何搭建 Python 的开发环境,包括了如何创建虚拟环境。
  • 虚拟环境 通过很简单的配置可以使用独立的环境,包括了安装包、Python 版本等。
  • 模块机制 关于模块、包的介绍,包括了基本概念、包的引入、查找顺序、创建模块等。
  • 包管理机制 简单介绍如何使用自己编写的包,以及安装一些常见的三方包。
  • 包分发管理 主要用于开发者使用,用于打包、分发等。

基本介绍

  • 基本语法 简单整理一些常见容易混淆的概念,例如异常、Class等。
  • 新类旧类 从 Python 2.2 版本中引入了新式类,之前的类称为经典类或者旧类,这里介绍其区别。
  • 变量绑定 一切皆对象导致了变量与其它语言概念上有所差异。
  • 入参格式 Python 提供了很灵活的入参方式,包括了常见的位置参数还有关键词参数。
  • 字典对象 字典通过 Hash 表实现,不过其实现与常规的 Hash 表略有区别。
  • 垃圾回收 详细介绍 Python 特有的垃圾回收机制。
  • 动态执行 允许通过 exec 和 eval 执行以字符串形式表示的代码片段,这里简单介绍。
  • 动态库使用 常用的有几种方式可以直接使用动态库,最简单的是 ctypes 库,不过这里重点介绍直接封装模块。
  • 闭包和装饰器 通过装饰器可以给现有的模块加上一些小功能,但又不会侵入代码。
  • 命名空间和作用域 在命名空间中保存了变量名到值的映射,而作用域决定了那些变量是有效的。
  • C Binding 这里实际上就是将 Python 虚拟机嵌入到 C 代码中,从而可以调用 Python 代码。

下面简单介绍一些常见的语法使用方式。

  • 上下文管理 实际上也就是常用的 with 语句,可以简化资源管理以及异常处理。
  • DocString 也就是一些注释信息,包括了模块、函数等。
  • Python 杂项 记录了 Python 中常见技巧,一些乱七八糟的东西。

常用模块

  • 内置模块 在 CPython 的实现中,包含了 builtins 模块,与内置命名空间的查找容易混淆。
  • logging 用来打印日志信息,通过简单机制提供了非常灵活的实现。
  • requests 一个简单但是非常优雅的 HTTP 库。
  • mysql 介绍几种常见的库连接 MySQL 服务器,关于 ORM 相关参考这里。
  • greenlet 不错的协程库实现。
  • 时间处理 与时间操作相关的模块。
  • 其它模块 包含一些比较小但是好用的模块,例如。

其它

  • Python2 VS. Python3 两个版本之间的区别。
  • PyCharm 使用 PyCharm 开发时一些常用的技巧。
  • ZeroMQ 非常简单好用的传输层实现,使得 Socket 编程更加简单高效,包括 架构设计
  • Ansible 一个配置管理工具,无需安装服务端和客户端,只要有ssh即可,而且使用简单。
  • SaltStack 一个轻量级的运维工具,具备配置管理、远程执行、监控等功能。
  • 异步队列 介绍一些常用的调度系统,如 APScheduler、Redis Queue、Celery 等。

示例代码

  • 常用代码 整理一些日常使用的代码实现。
  • Bitcoin 50 行 Python 实现 Bitcoin,简单展示其实现原理。

常用链接