python编程简介-编程学习|Python编程之美:Python的介绍

python是一门当前流行的编程语言。

目前python有两个版本的解析器:python2和python3。如何选择解析器是一个命题:在python3之前,python2一直是标准选择;

python3的设计,没有完全兼容python2,在设计上与python2存在一些差异。

如何选择解析器的版本:如果是新手或者不知道选择哪一个的话,建议选择python3;

若有特殊原因,如影响系统稳定性、性能或者依赖的软件限制则使用python2;

在选择了解析器后,则需要根据所需,选择python的实现了。不同的实现,其兼容性、运行效率各有不同。

CPython:是标准Python,是其他python的参考性实现。通常提的“Python”,一般是指cpython。cpython由C编写,它将Python代码编译成cpython字节码,由虚拟机解释执行。cpython对python包和C扩展模块的兼容性最好。

若是编写开源python,如果想覆盖更多的潜在用户,则使用cpython;如果python包依赖与C扩展,最好选择cpython。

Stackless:是在cpython上的优化;主要将python解析器与调用栈解耦,从而实现改变代码执行次序。stackless引入了tasllet,它可以封装函数,将其变为"微线程"。

Pypy:是用rpython实现的python解析器。它可以推断出变量的类型,从而实现一些优化策略。它的特色是JIT编译器,支持多种编译器后端。pypy的目标在于提升性能的同时尽可能最大程度兼容cpython。

如果想提升python性能,可以考虑pypy。

Jython:可以将python代码编辑为java字节码,再由JVM执行。jython能够像python一样导入并使用任意java类。

如果需要与java代码库交互,或基于jvm编写python代码,则选择jython。

IronPython:专为.net框架准备的python实现。可同时使用python和.net框架的代码库。

visual studio的python工具集将ironpython集成到visual studio开发环境,因此在Windows平台开发,可以考虑ironpython。

PythonNet:近乎无缝地将.net中间语言运行集成到python环境中。pythonnet使非Windows操作系统能够在.net框架中使用。与ironpython使用方式相反,可以同时存在。两者是一种互补关系。

Skulpt:是python的一个JavaScript实现。未完全移植到cpython标准库。可实现简单的math、random、turtle、image、unittest、time、urllib、dom等。主要用于教学。

MicroPython:是python3的一个实现。主要在微控制器上运行进行了针对性优化。不仅包含python标准库的模块,还提供了硬件细节、内存信息、网络访问等信息。

python 核心设计概念:代码的可读性

1. 阅读 HowDoI 项目代码(github可找)

(1) 结构示例:

1) 一个函数只做一件事: 联想到设计模式,这就是所谓的职责分明,易于维护

2) 利用系统提供的数据

(2) 风格示例:

1) 带下划线前缀的函数名: 将函数标识为仅供内部使用,这是 Python 约定俗成的,当然可以不用下划线,只是为了方便标识

2) 仅在移除地方处理兼容性问题: 可读性很重要,这是为了处理好可能存在的不同依赖版本的差异,防止版本检查的代码到处都是,给用户提供便利

3) 符合 Python 风格的写法: 优美胜于丑陋,把代码写得优美一点,别人看起来自然就会舒服点,比如 PEP8的代码风格

2. 阅读 Diamond 项目代码

(1) 结构示例:

1) 将不同的功能划分到不同的命名空间: 在代码里面使用命名空间是一个很好的主意,不仅方便开发,还有效防止了命名的冲突

2) 用户可扩展自定义类: 复杂胜于难懂,内部代码可以复杂实现,但提供的应该是简单的用户接口

(2) 风格示例:

1) 闭包的使用用例: 闭包是一种函数,利用在局部作用域中可用但在含漱液调用时不可用的变量,比如在这个项目中使用的闭包的延迟绑定

3. 阅读 Tablib 库代码

(1) 结构示例:

1) 无须面向对象代码来实现对各种文件格式的支持(使用命名空间来组织函数): 如何使用模块作为命名空间来分离函数,而不是使用不必要的类

2) 描述符合属性装饰器: 制造不可变性以实现更好的 API

3) 以编程方式注册文件格式: 使得整个包的模块化更好,易于添加新的文件格式

4) 在软件包中捆绑依赖

5) 使用__slots__来节约内存: 明智而审慎地进行优化,因为相对于运行速度,Python 更在意代码的可读性

(2) 风格示例:

1) 运算符重载: 优美胜于丑陋,运算符重载将深入 Python 数据模型的细节当中,为类定制行为以便于别人使用你的 API 编写出优美的代码

总结

如何阅读高质量的代码,主要有几个步骤:

(1) 首先阅读代码文档,很多项目的文档都会详细描述其作用以及注意事项等,这是了解代码很重要的一步

(2) 使用项目代码,知之不如行之,想要更好地了解项目,把它使用起来并能正确运行也是必不可少的一步

(3) 阅读代码,想要提高自己的代码水平,阅读源代码更是最为重要的一步,从别人的代码中可以了解到很多自己不会的东西,学习别人的代码结构和风格,日积月累,代码水平自然就高了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值