pep

Python编码规范(PEP8)

心不动则不痛 提交于 2020-05-02 09:53:16
Introduction 介绍 本文提供的Python代码编码规范基于Python主要发行版本的标准库。Python的C语言实现的C代码规范请查看相应的PEP指南 1 。 这篇文档以及 PEP 257 (文档字符串的规范)改编自Guido原始的《Python Style Guide》一文,同时添加了一些来自Barry的风格指南 2 。 这篇规范指南随着时间的推移而逐渐演变,随着语言本身的变化,过去的约定也被淘汰了。 许多项目有自己的编码规范,在出现规范冲突时,项目自身的规范优先。 A Foolish Consistency is the Hobgoblin of Little Minds 尽信书,则不如无书 Guido的一条重要的见解是代码阅读比写更加频繁。这里提供的指导原则主要用于提升代码的可读性,使得在大量的Python代码中保持一致。就像 PEP 20 提到的,“Readability counts”。 这是一份关于一致性的风格指南。这份风格指南的风格一致性是非常重要的。更重要的是项目的风格一致性。在一个模块或函数的风格一致性是最重要的。 然而,应该知道什么时候应该不一致,有时候编码规范的建议并不适用。当存在 模棱两可 的情况时,使用自己的判断。看看其他的示例再决定哪一种是最好的,不要羞于发问。 特别是不要为了遵守PEP约定而破坏兼容性! 几个很好的理由去忽略特定的规则:

Python规范:代码规范要注意

早过忘川 提交于 2020-05-02 09:52:58
主要有以下两种代码规范 《8 号 Python 增强规范》(Python Enhacement Proposal #8),以下简称 PEP8; 《Google Python 风格规范》(Google Python Style Guide),以下简称 Google Style,这是源自 Google 内部的风格规范。公开发布的社区版本,是为了让 Google 旗下所有 Python 开源项目的编程风格统一。(http://google.github.io/styleguide/pyguide.html) Google Python Style Guide 要更严格些。 统一的编程规范为什么重要?    开发效率,关乎三类对象,也就是阅读者、编程者和机器。他们的优先级是阅读者的体验 >> 编程者的体验 >> 机器的体验。 阅读者的体验 >> 编程者的体验   不少的编程规范,本来就是为了优化读者体验而存在的。举个例子,对于命名原则,我想很多人应该都有所理解,PEP8 第 38 条规定命名必须有意义,不能是无意义的单字母。如: 错误示例 if (a <= 0): return elif (a > b): return else : b -= a # 正确示例 if (transfer_amount <= 0): raise Exception( ' ... ' ) elif

Python3中的命名规范大全---基于PEP8标准

早过忘川 提交于 2020-05-02 09:21:52
转载地址:https://blog.csdn.net/weixin_39723544/article/details/82144280 前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 目录 Python代码规范 一、简明概述 1、编码 如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头部必须加入#- -coding:utf-8- -标识 2、代码格式 2.1、缩进 统一使用 4 个空格进行缩进 2.2、行宽 每行代码尽量不超过 80 个字符(在特殊情况下可以略微超过 80 ,但最长不得超过 120) 理由: 这在查看 side-by-side 的 diff 时很有帮助 方便在控制台下查看代码 太长可能是设计有缺陷 2.3、引号 简单说,自然语言使用双引号,机器标示使用单引号,因此 代码里 多数应该使用 单引号 自然语言 使用双引号 “…” 例如错误信息;很多情况还是 unicode,使用u”你好世界” 机器标识 使用单引号 ‘…’ 例如 dict 里的 key 正则表达式 使用原生的双引号 r”…” 文档字符串 (docstring) 使用三个双引号 “”“……”“” 2.4、 空行 模块级函数和类定义之间空两行; 类成员函数之间空一行; class A: def __init__ (self)

Python 异步编程笔记:asyncio

廉价感情. 提交于 2020-05-02 02:35:28
个人笔记,不保证正确。 虽然说看到很多人不看好 asyncio,但是这个东西还是必须学的。。 基于协程的异步,在很多语言中都有,学会了 Python 的,就一通百通。 一、生成器 generator Python 的 asyncio 是通过 generator 实现的,要学习 async,先得复习下 generator. 1. yield 众所周知,yield 是用于定义 generator 函数的关键字,调用该函数,会返回一个 generator >>> def f(): ... yield 1 ... yield 2 ... >>> f() # 返回的是 generator <generator object f at 0x7f672c460570> >>> g = f() >>> next(g) # 通过 next 方法从 generator 获取值 1 >>> g.__next__() # next 方法实际是调用了 generator 的 __next__ 方法 2 >>> next(g) # 生成器运行结束,产生一个 StopIteration 的 exception Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration 每次调用 next

Python PE8 编码规范中文版

风格不统一 提交于 2020-05-01 14:41:38
item detail PEP 8 Title Style Guide for Python Code Version c451868df657 Last-Modified 2016-06-08 10:43:53 -0400 (Wed, 08 Jun 2016) Author Guido van Rossum <guido at python.org> , Barry Warsaw <barry at python.org> , Nick Coghlan <ncoghlan at gmail.com> Status Active Type Process Content-Type text/x-rst Created 05-Jul-2001 Post-History 05-Jul-2001, 01-Aug-2013 Introduction 介绍 A Foolish Consistency is the Hobgoblin of Little Minds 尽信书则不如无书 Code lay-out 代码布局 Indentation 缩进 Tabs or Spaces 制表符还是空格 Maximum Line Length 行的最大长度 Should a line break before or after a binary operator 在二元运算符之前应该换行吗 Blank

【PyCharm】选择性忽略 PEP8 警告

…衆ロ難τιáo~ 提交于 2020-05-01 14:40:01
PyCharm 是个很强大的 python IDE,PEP 8 的告警提示也很好用,但是函数名不能包含大写字母等少数几个规范真心觉得不好,作为一名处女座强迫症患者,代码下面的波浪线这种东西是绝对不允许存在的。 File -> Settings -> Editor -> Inspections -> 右侧Python 在 Ignored errors 中添加要忽略的告警ID。注意,要区分是属于 coding 还是 naming。 PEP 8 coding style violation 的告警ID查看 https://pep8.readthedocs.io/en/latest/intro.html#error-codes PEP 8 naming convention violation 的告警ID查看 https://pypi.org/project/pep8-naming/ code sample message N801 class names should use CapWords convention N802 function name should be lowercase N803 argument name should be lowercase N804 first argument of a classmethod should be named ‘cls’

软件工程(2019)第四次作业

蓝咒 提交于 2020-05-01 11:31:14
<font face="黑体" color=#00FFFF>代码复审</font> ### <font face="黑体" color=#FF0000>Partner's ProjectAddress</font> 项目功能 <font face="宋体"> 此项目为 张天翊 同学所写,其功能如下:</font> <font face="宋体"> 通过四个数字的形式输入起始坐标点,可以分别调用中点画线法,dda和BresenHam三个绘制直线的模块,都会返回需要点亮的坐标。</font> 项目代码 def midPointLine(x0=-1,y0=0,x1=5,y1=4): points = [] x0 = int(x0); y0 = int(y0) x1 = int(x1); y1 = int(y1) if x0 > x1: x0, x1 = x1, x0 y0, y1 = y1, y0 print('x', 'y') a = y0 - y1 b = x1 - x0 c = x0 * y1 - x1 * y0 x = x0; y = y0 k = (y0 - y1)/(x0 - x1) if x0 == 0 and x1 == 0 : for i in range(min(y0, y1), max(y0, y1) + 1, 1): print(0, i) points

Python如何移除旧的版本特性,如何迎接新的特性?

青春壹個敷衍的年華 提交于 2020-04-30 19:43:36
2020 年 4 月 20 日,Python 2 的最后一个版本 2.7.18 发布了,这意味着 Python 2 是真正的 EOL(end of life)了,一个时代终于落幕了。 Python 2.0 版本是在 2000 年发布的,至今正好到 20 周年(差半年),一代版本竟然持续了这么长时间。其中,2.7 版本是在 Python 3 推出后才发布的,它在 2010 年发布,至今已是 10 年之久。 这里还要注意: 不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你没有2020最新python入门到高级实战视频教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新python教程项目,还可以跟老司机交流讨教! 事实上,Python 诞生了 30 年,但版本演进过程一直很慢,目前最新发布的版本只到 3.8.2。 对比一下相差几岁的隔壁家选手,C++ 已经发展到了 20,JAVA 发展到了 14 ,PHP 到了 7.4,差距悬殊。 但是,版本发布太频繁,也不总是一件好事。就在 Python 程序员抱怨自己的 Python 2 项目还没升 3 版本时,有些 JAVA 程序员还在维护 6、7 版本的项目呢。版本迁移之苦,大家彼此彼此,五十步笑百步。 编程语言跨版本间出现不兼容的特性,几乎是常态。很多时候

即使使用__init__.py,也如何解决“尝试以非软件包方式进行相对导入”

北慕城南 提交于 2020-04-29 21:04:31
问题: I'm trying to follow PEP 328 , with the following directory structure: 我正在尝试使用以下目录结构来遵循 PEP 328 : pkg/ __init__.py components/ core.py __init__.py tests/ core_test.py __init__.py In core_test.py I have the following import statement 在 core_test.py 我有以下导入语句 from ..components.core import GameLoopEvents However, when I run, I get the following error: 但是,当我运行时,出现以下错误: tests$ python core_test.py Traceback (most recent call last): File "core_test.py", line 3, in <module> from ..components.core import GameLoopEvents ValueError: Attempted relative import in non-package Searching around I found "

可信计算技术的前生今世:从等保2.0谈起

时光怂恿深爱的人放手 提交于 2020-04-29 14:27:03
https://www.secrss.com/articles/12250 可信计算经过这么多年的发展,对应的关键技术发展思路逐步清晰,但仍然有许多未解决的技术问题待进一步深入研究。 概述 2019年安全圈讨论度最高的热门词一定是“等保2.0”。等保2.0时代保护策略要变被动防御为主动防御,变层面防御为立体防御。 可信计算技术为主动防御提供了新的思路,也在等保2.0中被重点提及。我国网络安全领域著名专家、中国工程院院士沈昌祥在以《重启可信革命——主动免疫可信计算3.0》为主题的演讲中指出:“当前我国的信息安全的防护工作是比较传统的,也就是说称为老三样:防火墙、杀病毒、入侵监测,这样是解决不了安全问题的。”那么如何解决问题呢?引入可信计算,因为“可信计算包括三方面:可信可用,方能安全交互;主动免疫方能有效保护;自主创新方能安全可控”。所以要利用可信计算技术实现主动免疫。 1.1 概念 首先我们了解一下什么是可信。 可信在不同的机构下的定义是不同的。可信计算工作组TCG(Trusted Computing Group)对可信的定义可以描述为:对于一个特定的目标,实体的行为总是与预期的相符,则针对这个目标,该实体就是可信的。电气电子工程师学会IEEE(Institute of Electrical and Electronics Engineers)对可信的定义则是