(搬运自我在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. day1 java基础回顾-多线程

    启动线程方式 方式一:继承Thread. 1. 自定义一个类继承Thread类. 2. 重写Thread的run方法,把自定义线程的任务代码定义在run方法上. 3. 创建Thread子类的对象,并且 ...

  2. 由sock引起的感想

    昨天晚上和同学聊天,他问我你敲了这么多TCP,UDP.到底掌握了什么,我说我敲了很多例子.对这两个模式很清晰,顺便练习了多进程,线程等等. 他说,这样不太好.我一直只是拿这两个例子在练习,没有真正的在 ...

  3. ansible无网络安装openstack(Newton)

    概要 apt使用本地源,pip使用本地源 网络环境 物理机环境 网络名 网络地址 VLAN br-ex 192.168.200.250/24 90 br-mgmt 92.0.0.100/24 92 a ...

  4. Automake使用(初级)

    工程地址 https://github.com/silvermagic/automakeDev.git 最初工程目录结构 $ vim main.cpp $ vim src/main.cpp ls -l ...

  5. UnityShader实例09:Stencil Buffer&Stencil Test

    http://blog.csdn.net/u011047171/article/details/46928463 Stencil Buffer&Stencil Test 在开始前先吐槽下uni ...

  6. path不相等的子集,父级

    SELECT a.path,b.path from comm_department_temp a INNER JOIN comm_department_temp b on a.id=b.parent_ ...

  7. STP-9-处理RSTP中的拓扑变化

    STP能识别四种不同的拓扑变化事件, 而RSTP只有当非边界端口从非转发状态变为转发状态才认为发生了拓扑变化事件 因为刚变为转发状态的端口可以为一些mac地址提供比之前更好的路径,CAM表需要更新.失 ...

  8. 网站前端开发--css篇

    Ⅰ 全局:global.css 全局样式为全站公用,为页面样式基础,页面中必须包含. 结构:layout.css 页面结构类型复杂,并且公用类型较多时使用.多用在首页级页面和产品类页面中. 私有:st ...

  9. Java EE学习笔记(九)

    MyBatis的关联映射 1.关联关系概述 1).实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系.针对多表之间的操作,MyBatis提供了关联映射,通 ...

  10. Core2.0 项目到2.1

    Core2.0 项目到2.1 https://www.cnblogs.com/FlyLolo/p/ASPNETCore2_10.html .NET Core 2.1 终于发布了, 赶紧升级一下. 一. ...