热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python最佳实践指南试题_Python最佳实践指南2018学习笔记

目录基础信息版本python 2.7python 3.xpython2.7 版本在 2020 年后不再提供支持,建议新手使用 3.x 版本进行学习实现cpython:python的标准实现;pypy:

目录

基础信息

版本

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 代码

附录

相关参考

希望与广大网友互动??

点此进行留言吧!


推荐阅读
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • VSCode快速查看函数定义和代码追踪方法详解
    本文详细介绍了在VSCode中快速查看函数定义和代码追踪的方法,包括跳转到定义位置的三种方式和返回跳转前的位置的快捷键。同时,还介绍了代码追踪插件的使用以及对符号跳转的不足之处。文章指出,直接跳转到定义和实现的位置对于程序员来说非常重要,但需要语言本身的支持。以TypeScript为例,按下F12即可跳转到函数的定义处。 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
author-avatar
手机用户2602886335_120
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有