python中的pep编码_从PEP-8学习Python编码风格

关于空行

类与顶级函数(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中的getX和setX。相反,应当直接对变量进行操作。

如果要操作的对象不能或不适合直接操作,可以使用内建的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.x,C.x = value和del C.x时就会分别调用这三个方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值