Python编程规范

适当的空行有利于增加代码的可读性,加空行可以参考如下几个准则:

    1) 在类、函数的定义间加空行;

    2) 在 import 不同种类的模块间加空行;

    3) 在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间以空行分隔;

>  断行

立即学习“Python免费学习笔记(深入)”;

尽管现在的宽屏显示器已经可以单屏显示超过 256 列字符,但本规范仍然坚持行的最大长度不得超过 80   个字符的标准。折叠长行的方法有以下几种方法:

    1) 为长变量名换一个短名,如:

this.is.a.very.long.variable_name = this.is.another.long.variable_name

登录后复制

      应改为:

variable_name1 = this.is.a.very.long.variable_namevariable_name2 = this.is.another.variable_namevariable_name1 = variable_name2s

登录后复制

    2) Python会将圆括号、中括号和花括号中的行隐式的连接起来,你可以利用这个特点。如需要,你可以在表达式外围增加一对额外的圆括号

    3) 在长行加入续行符强行断行,断行的位置应在操作符前,且换行后多一个缩进,以使维护人员看代码的时候看到代码行首即可判定这里存在换行,如:

if color == WHITE or color == BLACK     or color == BLUE: # 注意 or 操作符在新行的行首而不是旧行的行尾do_something(color);

登录后复制

>  字符串

    1)  避免在循环中用+和+=操作符来累加字符串。由于字符串是不可变的,这样做会创建不必要的临时对象,并且导致二次方而不是线性的运行时间。作为替代方案,你可以将每个子串加入列表,然后在循环结束后用 .join 连接列表。(也可以将每个子串写入一个 cStringIO.StringIO 缓存中)

    2)  为多行字符串使用三重双引号而非三重单引号。不过要注意, 通常用隐式行连接更清晰,因为多行字符串与程序其他部分的缩进方式不一致。

>  命名

一致的命名可以给开发人员减少许多麻烦,而恰如其分的命名则可以大幅提高代码的可读性,降低维护成本。

>>  常量

常量名所有字母大写,由下划线连接各个单词,如

WHITE = 0XFFFFFFTHIS_IS_A_CONSTANT = 1

登录后复制

>>  变量

变量名全部小写,由下划线连接各个单词,如

color = WHITEthis_is_a_variable = 1

登录后复制

私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。

变量名不应带有类型信息,因为 Python 是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。

>>  函数

函数名的命名规则与变量名相同。

>>  类

对类名使用大写字母开头的单词(如CapWords, 即Pascal风格),不使用下划线连接单词。如:

class ThisIsAClass(object):pass

登录后复制

>>  模块

模块名全部小写,对于包内使用的模块,可以加一个下划线前缀,如

module.py_internal_module.py

登录后复制

>>  包

包的命名规范与模块相同。

>>  缩写

命名应当尽量使用全拼写的单词,缩写的情况有如下两种:

    1) 常用的缩写,如 XML、ID等,在命名时也应只大写首字母,如

class XmlParser(object):pass

登录后复制

    2) 命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式,如去除元音、包含辅音的首字符等方式,例如:

        function 缩写为 fn

        text 缩写为 txt

        object 缩写为 obj

        count 缩写为 cnt

        number 缩写为 num,等。

>>  特定命名方式

主要是指 __xxx__ 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如

class Base(object):    def __init__(self, id, parent =None):        self.__id__ = id        self.__parent__ = parent    def __message__(self, msgid):        # …略

登录后复制

其中 __id__、__parent__ 和 __message__ 都采用了系统保留字命名法。

>>  导入格式

    1) import 的次序,先 import Python 内置模块,再 import 第三方模块,最后 import 自己开发的项目中的其它模块;这几种模块用空行分隔开来。

    2) 每个import应该独占一行。

    3) 不要使用 from module import *,除非是 import 常量定义模块或其它你确保不会出现命名空间冲突的模块。

>  赋值

对于赋值语言,主要是不要做无谓的对齐,如

a            = 1                               # 这是一个行注释variable = 2                               # 另一个行注释fn           = callback_function    # 还是行注释

登录后复制

没有必要做这种对齐,原因有两点:一是这种对齐会打乱编程时的注意力,大脑要同时处理两件事(编程和对齐);二是以后阅读和维护都很困难,因为人眼的横向视野很窄,把三个字段看成一行很困难,而且维护时要增加一个更长的变量名也会破坏对齐。直接这样写为佳:

a = 1 # 这是一个行注释variable = 2 # 另一个行注释fn = callback_function # 还是行注释

登录后复制

>  语句

通常每个语句应该独占一行。不过, 如果测试结果与测试语句在一行放得下, 你也可以将它们放在同一行。如果是if语句, 只有在没有else时才能这样做。特别地,绝不要对 try/except 这样做,因为try和except不能放在同一行。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2282724.html

(0)
上一篇 2025年2月27日 19:38:55
下一篇 2025年2月27日 13:11:57

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 基于Python实现excel表格读写

    首先安装对应的xlrd和xlwt 打开cmd命令窗口输入pip install xlrd和pip install xlwt就可以安装。之后输入pip list检查是否成功配置: xlrd操作# 接下来就是常用的语法操作:   立即学习“Py…

    2025年2月27日 编程技术
    200
  • Python读取PDF内容

    1,引言 晚上翻看《python网络数据采集》这本书,看到读取pdf内容的代码,想起来前几天集搜客刚刚发布了一个抓取网页pdf内容的抓取规则,这个规则能够把pdf内容当成html来做网页抓取。神奇之处要归功于firefox解析pdf的能力,…

    编程技术 2025年2月27日
    200
  • Python 类与元类的深度挖掘 II

    我们向上回溯一层,看看类对象本身是如何产生的。 我们知道 type() 方法可以查看一个对象的类型,或者说判断这个对象是由那个类产生的: print(type(12))print(type(‘python’)) 登录后复制 登录后复制 cl…

    2025年2月27日
    200
  • Python 中的枚举类型

    枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期、月份、状态等。python 的原生类型(built-in types)里并没有专门的枚举类型,但是我们可以通过很多方法来实现它,例如字典、类等: WE…

    编程技术 2025年2月27日
    200
  • 理解 Python 中s可变参数的 *args 和 **kwargs

    使用默认参数的可变参数 python是支持可变参数的,最简单的方法莫过于使用默认参数,例如: def test_defargs(one, two = 2):   print ‘Required argument: ‘, one   prin…

    编程技术 2025年2月27日
    200
  • python删除文件和删除目录的方法

    下面来看一下python里面是如何删除一个文件及文件夹的~~ 首先引入os模块 import os 删除文件: os.remove() 删除空目录: os.rmdir() 递归删除空目录: os.removedirs() 递归删除目录和文件…

    编程技术 2025年2月27日
    200
  • python3与python2.7的分别

    搜索一下大家就会知道,python有两个主要的版本,python2 和 python3 ,但是python又不同于其他语言,向下兼容,python3是不向下兼容的,但是绝大多数组件和扩展都是基于python2的,下面就来总结一下 pytho…

    编程技术 2025年2月27日
    200
  • Python 异常处理

    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 异常处理: 本站Python教程会具体介绍。 断言(Assertions):本站Python教程会具体介绍。 py…

    编程技术 2025年2月27日
    200
  • Go语言的类IPython 交互式编程界面

    bret victor 的 inventing on principle 是我看到过的最令人激动和震撼的演示,没有之一。虽然这位前苹果公司的ui大牛早在2012年就作出的这次演示,但他的影响一直没有减弱,编写程序过程中的任何变化,应该直接的…

    2025年2月27日 编程技术
    200
  • Python函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创见函数,这被叫做用户自定义函数。 定义一个函数 你…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论