python代码书写规范_Python代码书写规范,开发者必看

每一种代码都有自己的一套书写、应用规范体系,当然Python语言也不例外,今天奇酷学院整理了最新Python代码书写规范要求,帮助你提升代码书写效率减少bug。

1510135657384237.jpg

1.类和异常命名首字母大写,但模块名用小写加下划线的链接的方式。

2.变量名不要用单个字符。(除非变量名含义可从上下文很容易看出来)

例如:for i, val in enumerate([1, 2, 3]):

print('index %s, value is %s' % (i, val))

3.变量避免重复命名。import audio

# core = audio.AudioCore() #不合适

core = audio.Core()

4.把代码引用部分放在文件的顶部,按下面的顺序分成三个部分,每个部分之间空一行。

(1)系统引用

(2)第三方引用

(3)本地引用

理由:明确显示每个模块的引用来源。

5.一个类不继承自其他类,则让它显示的继承Object,嵌套类也一样。

继承自object 是为了使属性(properties)正常工作, 并且这样可以保护你的代码, 使其不

受Python3的一个特殊的潜在不兼容性影响。这样做也定义了一些特殊的方法, 这些方

法实现了对象的默认语义, 包括 __new__, __init__, __delattr__, __getattribute__,

__setattr__, __hash__, __repr__, and __str__ 。

6.避免在循环中对字符串进行+,+=操作。利用list和''join()。

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

for p in person:

items .append('%s%s' % (p.name, p.age))

items .append('')

person_table = ''.join(items)

7.通常每个语句独占一行,当单个if时也可以。if check(): do_someting()

8.默认参数值适用于大部分情况。但不要将默认参数值设置为可变对象。

默认参数只在模块加载时求值一次. 如果参数是列表或字典之类的可变类型, 这可能

会导致问题. 如果函数修改了对象(例如向列表追加项), 默认值就被修改了。

函数定义的时候默认值参数赋值一次。x = 42

def spam(a, b=x):

print(a, b)

spam(1) # 1 42

x = 23 # 给x重新赋值但没有影响到默认值参数

spam(1) # 42

当默认值参数不能使是可变对象。如果你这么做了,当默认值在其他地方被修改后你将会遇到各种麻烦。这些修改会影响到下次调用这个函数时的默认值。def spam(a, b=[]): # 不合适

print(b)

return b

x = spam(1) # []

x.append(99)

x.append('Yow!')

spam(1) # [99, 'Yow!']

更好的方式:def spam(a, b=None):

if b is None: # 最好不要用if not b, False, 0等也会被当成False

b = []

print(b)

return b

9.线程方面。

不要依赖内建类型的原子性虽然Python的内建类型例如字典看上去拥有原子操作, 但是在某些情形下它们仍然不是原子的(即: 如果__hash__或__eq__被实现为Python 方法)且它们的原子性是靠不住的,不能指望原子变量赋值(因为这个反过来依赖字典)。优先使用Queue模块的Queue数据类型作为线程间的数据通信方式是一个更好选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值