当前位置: 移动技术网 > IT编程>脚本编程>Python > Python 最佳实践指南 2018 学习笔记

Python 最佳实践指南 2018 学习笔记

2018年10月11日  | 移动技术网IT编程  | 我要评论

张心凌,古列,狗狗爱爱女

目录


基础信息

版本

  • python 2.7
  • python 3.x

python2.7 版本在 2020 年后不再提供支持,建议新手使用 3.x 版本进行学习

实现

  • cpython:python的标准实现;
  • pypy:用 rpython 实现,目标实在提高性能;
  • jpython:将 python 编译成 java 字节码,使其能在 jvm 中运行,目前支持 python2.7;
  • ironpython:是 .net 平台下的一种实现,支持 .net 平台下的语言调用 python代码;
  • pythonnet:是一个为 python 本地安装和 .net 公共语言运行库(clr)提供无缝整合的软件包;

安装 python

  • mac os x
  • windows
  • linux

在 windows 上安装完成后检查一下是否配置了 python 和 scripts 的环境变量,方便 cmd 快速启动。

虚拟环境

pipenv

virtualenv

//安装
pip3 install virtualenv

//查看版本号
virtualenv --version

//创建虚拟环境
virtualenv venv

//创建一个独立的虚拟环境
virtualenv --no-site-packages venv

//激活虚拟环境
source venv/bin/activate

//退出虚拟环境
deactivate

//删除虚拟环境
 rm virtualenv venv

//查看帮助
virtualenv -h

python 开发环境

  • pycharm
  • visual studio code
  • visual studio 2017

上述命令在 ubuntu 环境下测试可用,新手在 windows 上开发还是建议使用 pycharm

写出优雅的 python 代码

代码结构

仓库结构

readme.rst
license
setup.py
requirements.txt
sample/__init__.py
sample/core.py
sample/helpers.py
docs/conf.py
docs/index.rst
tests/test_basic.py
tests/test_advanced.py

具体模块

位置 ./sample/ 或 ./sample.py
目的 具体代码

授权

位置 ./license
目的 法律相关

setup.py

位置 ./setup.py
目的 包安装和分发管理

依赖文件

位置 ./requirements.txt
目的 开发中的依赖

文档

位置 ./docs/
目的 项目的参考文档

测试套件

位置 ./test_sample.py 或 ./tests
目的 软件包集成和单元测试

makefile

位置 ./makefile
目的 通用的管理任务。

模块

  • 使用 import * 会使代码更难阅读,并使得依赖更少的分块。

包系统

面向对象编程

将有上下文和副作用的函数与逻辑函数(称为纯函数)隔离开来,可以获得以下好处:

  • 纯函数是确定性的:给定一个固定的输入,输出始终是相同的。
  • 纯函数需要重构或优化时,更容易更改或替换。
  • 纯函数更易于使用单元测试进行测试:对于复杂的上下文设置和事后的数据清理的需求更少。
  • 纯函数更容易操作、修饰和传递。

装饰器

上下文管理器

动态类型

可变和不可变类型

除了 str.join() 和 +,您也可以使用 % 格式运算符来连接确定数量的字符串,但 pep 3101 建议使用 str.format() 替代 % 操作符。

编码风格

  • 明确代码意义
  • 函数参数
    • 必选参数
    • 关键字参数
    • 任意参数列表 (*args)
    • 任意关键字参数字典(**kwargs)
  • 避免魔法方法

魔法方法: 改变对象创建和实例化的方式; 改变python解释器导入模块的方式;甚至可能(如果需要的话也是被推荐的)在 python 中嵌入 c 程序。

  • 任何不开放给客户端代码使用的方法或属性,应该有一个下划线前缀;
  • 建议在函数体中避免使用返回多个有意义的值;
  • 习语
    • 解包(unpacking)

许多 python 风格指南建议使用单下划线的 _ 而不是这里推荐的双下划线 __ 来标记废弃变量。问题是, _ 常用在作为 gettext() 函数的别名,也被用在交互式命令行中记录最后一次操作的值。相反,使用双下划线 十分清晰和方便,而且能够消除使用其他这些用例所带来的意外干扰的风险。

  • 约定
    • 检查变量是否等于常量;
    • 访问字典元素;
    • 访问字典元素:不要使用 dict.has_key() 方法。 相反,使用 x in d 语法,或者将默认参数传递给 dict.get() 方法。
    • 列表推导式,除此之外,map() 和 filter() 函数在列表的操作上也是非常简洁的。
    • 读文件;使用 with open 语法来读文件,它能够为你自动关闭文件。

python 应用场景

部署优雅的 python 代码

附录

相关参考

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网