Python编程规范具体内容解析

开发 后端
Python编程规范的学习与掌握对于初学者来说是非常重要的一个应用技术。我们今天将会在这里通过各个方面对这一内容作详细介绍。

我们在学习Python编程语言之前,首先要了解的就是这一编程语言的一些主要的编码规范。我们今天就为大家详细介绍一下Python编程规范的相关内容,希望大家可以从中获得一些帮助,以方便将来的学习应用。#t#

Python编程规范之缩进

使用Emacs的Python-mode的默认值:4个空格一个缩进层次。对于确实古老的代码,你不希望产生混乱,可以继续使用8空格的制表符(8-space tabs)。Emacs Python-mode自动发现文件中主要的缩进层次,依此设定缩进参数。

 

Python编程规范之制表符还是空格

永远不要混用制表符和空格。最流行的Python缩进方式是仅使用空格,其次是仅使用制表符,混合着制表符和空格缩进的代码将被转换成仅使用空格。(在Emacs中,选中整个缓冲区,按ESC-x去除制表符。)调用Python命令行解释器时使用-t选项,可对代码中不合法得混合制表符和空格发出警告,使用-tt时警告将变成错误。这些选项是被高度推荐的。

对于新的项目,强烈推荐仅使用空格而不是制表符。许多编辑器拥有使之易于实现的功能(在Emacs中,确认indent-tabs-mode是nil)。

 

Python编程规范之行的最大长度

周围仍然有许多设备被限制在每行80字符:而且,窗口限制在80个字符。使将多个窗口并排放置成为可能。在这些设备上使用默认的折叠方式看起来有点丑陋。因此,请将所有行限制在最大79字符(Emacs准确得将行限制为长80字符),对顺序排放的大块文本(文档字符串或注释),推荐将长度限制在72字符。

折叠长行的首选方法是使用Pyhon支持的圆括号,方括号和花括号内的行延续。如果需要,你可以在表达式周围增加一对额外的圆括号,但是有时使用反斜杠看起来更好,确认恰当得缩进了延续的行。

Emacs的Python-mode正确得完成了这些。一些例子:

 

  1. #!Python  
  2. class Rectangle(Blob):  
  3. def __init__(self,width,height,color='black'
    emphasis=Nonehighlight=0):  
  4. if width == 0 and height == 0 and \  
  5. color == 'red' and emphasis == 'strong' or \  
  6. highlight > 100:  
  7. raise ValueError, "sorry, you lose"  
  8. if width == 0 and height == 0 and (color == 'red' or  
  9. emphasis is None):  
  10. raise ValueError,"I don't think so"  
  11. Blob.__init__(self,width,height,color,emphasis,highlight) 

 

 

Python编程规范之空行

用两行空行分割顶层函数和类的定义,类内方法的定义用单个空行分割,额外的空行可被用于(保守的)分割相关函数组成的群,在一组相关的单句中间可以省略空行。(例如:一组哑元素)。

当空行用于分割方法的定义时,在‘class’行和第一个方法定义之间也要有一个空行。在函数中使用空行时,请谨慎的用于表示一个逻辑段落。Python接受contol-L(即^L)换页符作为空格:Emacs(和一些打印工具),视这个字符为页面分割符,因此在你的文件中,可以用他们来为相关片段分页。

 

Python编程规范之编码

Python核心发布中的代码必须始终使用ASCII或Latin-1编码(又名 ISO-8859-1),使用ASCII的文件不必有编码cookie,Latin-1仅当注释或文档字符串涉及作者名字需要Latin-1时才被使用:

另外使用\x转义字符是在字符串中包含非ASCII(non-ASCII)数据的首选方法。

作为PEP 263实现代码的测试套件的部分文件是个例外。

 

Python编程规范之导入

通常应该在单独的行中导入(Imports),例如:

No:import sys, os

Yes:import sys

import os

但是这样也是可以的:

from types import StringType, ListType

Imports 通常被放置在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。Imports应该有顺序地成组安放:

1、标准库的导入(Imports )

2、相关的主包(major package)的导入(即,所有的email包在随后导入)

3、特定应用的导入(imports)

你应该在每组导入之间放置一个空行,对于内部包的导入是不推荐使用相对导入的,对所有导入都要使用包的绝对路径。

从一个包含类的模块中导入类时,通常可以写成这样:

from MyClass import MyClass

from foo.bar.YourClass import YourClass

如果这样写导致了本地名字冲突,那么就这样写

import MyClass

import foo.bar.YourClass

即使用"MyClass.MyClass"和"foo.bar.YourClass.YourClass"

 

表达式和语句中的空格

Guido不喜欢在以下地方出现空格:

紧挨着圆括号,方括号和花括号的,如:"spam( ham[ 1 ],{ eggs:2 } )"。要始终将它写成"spam(ham[1],{eggs: 2})"。

紧贴在逗号,分号或冒号前的,如:

"if x == 4:print x,y:x,y = y,x"。要始终将它写成

"if x == 4:print x,y:x,y = y,x"。

紧贴着函数调用的参数列表前开式括号(open parenthesis )的,如"spam (1)"。要始终将它写成"spam(1)"。

紧贴在索引或切片,开始的开式括号前的,如:

"dict ['key'] = list [index]"。要始终将它写成"dict['key'] = list[index]"。

在赋值(或其它)运算符周围的用于和其它并排的一个以上的空格,如:

 

  1. #!Python  
  2. x1 
  3. y2 
  4. long_variable = 3 

 

要始终将它写成

 

  1. #!Python  
  2. x = 1 
  3. y = 2 
  4. long_variable = 3 

以上就是对Python编程规范的相关内容的介绍。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-28 13:11:35

WPF音频

2009-12-07 17:21:50

WFC框架

2010-02-24 15:18:51

Python社区

2010-04-23 16:39:18

Oracle权限

2010-09-25 13:14:48

配置DHCP服务

2010-02-04 15:58:39

C++浅拷贝

2009-12-31 10:43:48

Silverlight

2010-08-23 16:49:02

DHCP服务器管理

2010-01-26 13:20:02

Android Act

2010-01-06 17:20:38

.Net Framew

2009-12-03 09:06:41

Visual Stud

2010-01-05 17:33:00

2010-01-08 15:18:51

华为交换机配置手册

2022-03-08 23:19:51

大数据隐私工信部

2010-07-12 11:58:02

Java UDP协议

2010-07-12 09:48:50

HART协议

2011-09-09 19:23:52

Widget

2011-09-09 19:39:57

GTK Widget

2011-09-08 14:21:37

jQueryWidget

2010-08-04 16:55:16

NFS服务
点赞
收藏

51CTO技术栈公众号