(搬运自我在SegmentFault的博客)

关于空行###

  • 类与顶级函数(top-level function)的定义之间应当空两行。
  • 类中的方法之间应当空一行。
  • 方法中的逻辑部分之间可以空一行。

关于原文件编码###

Python3中应当总是使用UTF-8。(Python2使用ASCII。)在使用了规定编码后不需要再声明文件编码。

关于命名风格###

  • 模块使用小写字母和下划线,包名同样使用小写字母但不要使用下划线。
  • 类名使用驼峰命名法。
  • 异常的命名以Error结尾。
  • 函数名和方法名使用小写,用下划线分割单词。mixedCase只有在考虑兼容性的时候才使用。
  • 类方法的第一个参数总是cls,实例方法的第一个参数总是self
  • 变量命名同函数和方法。如果名字与保留字有冲突,在最后加_
  • 私有变量和方法在最前加_,此时外部无法访问,但子类可以访问。
  • 如果也不希望子类访问,可以以__开头。此时无法用ClassName.__var访问 。(但仍然可以通过ClassName._ClassName_a访问到。)

关于公有和私有接口###

  • 默认情况下,以_开头的变量和方法被认为是私有的。
  • 可以使用__all__列表指定公开的接口。它会覆盖上一条规则。

关于Python中的下划线###

Python中的下划线用法有这么几种:

  • a_:避免名字与保留字等的冲突。
  • _a:表示私有。只能在类内部和子类中访问。
  • __a:只能在类内部使用。
  • __a__:Python内魔法对象的命名。其他情况不要这样命名。

关于getter(accessor)和setter(mutator)###

Python中不推荐使用类似于Java中的getXsetX。相反,应当直接对变量进行操作。

如果要操作的对象不能或不适合直接操作,可以使用内建的property方法自定义功能。property有两种用法:

class C:
def __init__(self):
self._x = None def getx(self):
return self._x
def setx(self, value):
self._x = value
def delx(self):
del self._x
x = property(getx, setx, delx, "I'm the 'x' property.")

或者:

class C:
def __init__(self):
self._x = None @property
def x(self):
"""I'm the 'x' property."""
return self._x @x.setter
def x(self, value):
self._x = value @x.deleter
def x(self):
del self._x

这样,当执行C.xC.x = valuedel C.x时就会分别调用这三个方法。

从PEP-8学习Python编码风格的更多相关文章

  1. (转)PEP 8——Python编码风格指南

    PEP 8——Python编码风格指南标签(空格分隔): Python PEP8 编码规范原文:https://lizhe2004.gitbooks.io/code-style-guideline-c ...

  2. PEP8中文版 -- Python编码风格指南

    Python部落组织翻译, 禁止转载 目录      缩进      制表符还是空格?      行的最大长度      空行      源文件编码      导入      无法忍受的      其 ...

  3. Python 编码风格指南

    原文:http://python.jobbole.com/84618/ 本文超出 PEP8 的范畴以涵盖我认为优秀的 Python 风格.本文虽然坚持己见,却不偏执.不仅仅涉及语法.模块布局等问题,同 ...

  4. 002.[python学习]python编码规范pep8学习——PEP8第一部分代码布局

    关于PEP8的详细说明可以参考官方原文:http://legacy.python.org/dev/peps/pep-0008/ 我参考官方文档及其他文章,摘出相关内容而得此文章,具体参考其他文章见文中 ...

  5. python coding style guide 的快速落地实践——业内python 编码风格就pep8和谷歌可以认作标准

    python coding style guide 的快速落地实践 机器和人各有所长,如coding style检查这种可自动化的工作理应交给机器去完成,故发此文帮助你在几分钟内实现coding st ...

  6. Python PEP-8编码风格指南中文版

    #PEP 8 – Python编码风格指南 PEP: 8 Title: Style Guide for Python Code Author: Guido van Rossum , Barry War ...

  7. Python编码规范和Python风格规范

    一.原因 1.长期的工作中,发现大多数程序员的代码可读性差 2.不同的程序员之间的协作很重要,代码可读性必须很好 3.版本升级时,要基于源码升级 4.不友好的代码会影响python的执行效率 二.基于 ...

  8. 【转】Python——编码规范

    来自于 啄木鸟社区 Python Coding Rule --- hoxide 初译 dreamingk 校对发布 040724 --- xyb 重新排版 040915 --- ZoomQuiet M ...

  9. python pep8编码风格学习记录(转)

    简要归纳 每个缩进层级使用4个空格. 每行最多79个字符. 顶层的函数或类的定义之间空两行. 采用ASCII或UTF-8编码文件 在文件顶端,注释和文档说明之下,每行每条import语句只导入一个模块 ...

随机推荐

  1. CodeForces 489C Given Length and Sum of Digits... (dfs)

    C. Given Length and Sum of Digits... time limit per test 1 second memory limit per test 256 megabyte ...

  2. DOM,date,字符串

    ECMAscript Dom doc Bom Browerwindow --窗口. location --地址栏. history --历史. document --文档. statue --任务栏& ...

  3. Linux 错误集锦

    1. CentOS 7 运行yum时出现/var/run/yum.pid已被锁定,PID为xxxx的另一个程序正在运行的问题解决 解决办法: rm -f /var/run/yum.pid,删除文件后再 ...

  4. python unittest模块

    import unittest import random class Operation(object): def __init__(self, num1=0, num2=0): if not (0 ...

  5. 2014-8-5 NOIP(雾)模拟赛

    皇帝的烦恼(二分答案) Description 经过多年的杀戮,秦皇终于统一了中国.为了抵御外来的侵略,他准备在国土边境安置n名将军.不幸的是这n名将军羽翼渐丰,开始展露他们的狼子野心了.他们拒绝述职 ...

  6. [Xcode 实际操作]六、媒体与动画-(13)使用UIImageView制作帧动画

    目录:[Swift]Xcode实际操作 本文将演示如何将导入的序列图片,转换为帧动画. 在项目导航区打开资源文件夹[Assets.xcassets] [+]->[Import]->选择图片 ...

  7. echarts3.0 实例容器不实时更新页面的问题

    var instanceId = document.getElementById(option.echartId).getAttribute('_echarts3_instance_'); if (i ...

  8. Java使用FFmpeg处理视频文件的方法教程

    这篇文章主要给大家介绍了关于Java使用FFmpeg处理视频文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 前言 本文主要 ...

  9. Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined) B

    Bash has set out on a journey to become the greatest Pokemon master. To get his first Pokemon, he we ...

  10. Mac OS X

    Mac OS X 除了微软自家的Windows平台, .NET Core针对Mac OS以及各种Linux(RHEL.Ubuntu.Debian.Fedora.CentOS和SUSE等)都提供了很好的 ...