追风筝的人儿

V1

2022/09/20阅读:28主题:绿意

Python编程规范的几点建议

关于字符串格式化

推荐统一使用格式化字符串字面值(formattedstring literal),在Python v3.6+支持了这种方式。

 f'Hello, {name}!'
 'Hello, Bob!'

这种格式化语法非常强大,因为其中可以嵌入任意的python表达式。比如

a = 5
b = 10
 f'Five plus ten is {a + b} and not {2 * (a + b)}.'

关于下划线的使用

前置单下划线 _var

前置但下划线只有约定含义,其本身并不会影响程序的行为,一般用于:以前置单下划线命名的变量或方法,是为了提示程序员该变量/方法只在内部使用。

“注意,这不是这个类的公共接口,请不要使用它。”

如果使用通配符导入某个模块的所有名称,python不会导入带有前置单下划线的所有名称。当然,import的时候始终不建议使用通配符,违背了导入规范。

后置单下划线 var_

如果某个变量最合适的名称已被python关键词占用,这种情况下,可以追加一个下划线来避免命名冲突。

前置双下划线 __var

前置双下划线真正的能够做到类的方法和名称只在类内部使用,外部无法直接使用。因为python使用了名称改写(name mangling)来实现,比如:

class Test:
  def __init__()
    self.__a = 12

我们使用内置的dir方法查看对象的属性dir(Test()),会看到__a被改写成了_Test__a,哈哈,所以外部无法访问__a

前后双下划线 var

如果名称前后都出现双下划线,则不会触发名称改写。但是有一些特殊的名称如__init____call__等,一般被称为魔法方法。

单下划线 _

这个经常看到,在做元组解包的时候,有些变量我们用不上,就会给命名为单下划线。来表示变量是临时的无关紧要的。这也是一种社区约定。

巧妙的用好逗号

强烈建议给列表(list)、集合(set)、字典(dict)的最后一个元素添加逗号,这样做能够避免在后面添加或移除元素的搞出bug,比如

list_ = ['aa',
        'bb'
]

然后某次要在后面添加一项,如:

list_ = ['aa',
        'bb'
        'cc'
]

忘记了给'bb'项目添加逗号,哈哈恭喜新添加了个bug。 针对这种后面可能有改动的列表,如果每个项后面都有个逗号,添加或者删除一项,git diff的时候也能清晰的看到这某一行的改动。而不会因为添加一项涉及到两行的改动。

分类:

后端

标签:

Python

作者介绍

追风筝的人儿
V1