自己整理了一套 Python 的编码规范,欢迎大家指导

2020-07-20 12:15:16 +08:00
 Lonersun

地址: https://github.com/Lonersun/coding-promise/blob/master/Python%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83.md

4417 次点击
所在节点    Python
40 条回复
laike9m
2020-07-20 13:52:17 +08:00
重新发一下图



这一条我不赞同。空行违背了大多人的代码习惯,并且其它 style guide 也没有要求空行的。



u"张三" 在 Python 3 里已经没必要了



这条没看懂
ijustdo
2020-07-20 13:59:56 +08:00
不错 大部分像约定俗成的 呵呵
Lonersun
2020-07-20 14:04:32 +08:00
@laike9m 第一个问题:我们在做一些复杂逻辑处理的时候,增加必要的空行会让代码读起来更清晰些吧,比如下单接口,第一进行库存处理,第二下单处理,第三扣款处理,如果三块没有空行对读代码的人可能不太友好,当然这种复杂类的还是要拆方法;

第二 中文前加 u, 我没有注明是 python2,python3 已经不需了,目前我们还是 python2,编码问题还是比较累

第三条,我写的不太明确

错误:
def test():
# 测试方法

正确:
def test():
"""测试方法"""

感觉这种方法的注释,Numpy 这个包的开发者写的注释非常好

非常感谢您指出的问题
laike9m
2020-07-20 14:10:34 +08:00
空行那个反正我只能说没见过这种写法,包括其它语言。有的人喜欢在多行的结构周围加空行,比如 for 循环,if...else, try...catch 等,这当然是 ok 的,我自己也喜欢这么做。但是一个 if...elif...else 的逻辑是一体的,放在一起更加合理。

注释那个,你用的是 * (星号)而不是 " (双引号),是不是写错了?
Lonersun
2020-07-20 14:12:19 +08:00
@laike9m 对,写错了
ifzzzh
2020-07-20 15:45:38 +08:00
# 判断传入的验证码如果不等于默认的验证码则返回 False
if verify_code != default_code:
return False
else:
return True

emmmmm
cz5424
2020-07-20 15:57:00 +08:00
遵守一下 pep8
ruanimal
2020-07-20 16:20:46 +08:00
用 Google 规范不好吗。。
Johnny168
2020-07-20 17:11:50 +08:00
公司内部开发字典
j0hnj
2020-07-20 17:18:24 +08:00
(三) 9.每个 py 文件在头行必须添加 # -- coding:utf-8 --。

这个在 Python3 中也没有必要了
renzhezheng
2020-07-20 17:35:36 +08:00
你这 if-else 就不符合最少编码原则
stephenyin
2020-07-20 18:39:36 +08:00
用 sex 真的合适么🙃?
zzzmj
2020-07-20 18:40:34 +08:00
最近参与的 py 项目都是 flake8+isort+pylint+black 的多重狗逼校验。
chenqh
2020-07-20 19:04:13 +08:00
@zzzmj 有必要这么严吗?
OakScript
2020-07-20 19:39:23 +08:00
brickxu
2020-07-20 21:03:15 +08:00
给人感觉是 Java 程序员转行 Python 给下的规范。。。
forrestchang
2020-07-20 21:46:59 +08:00
更推荐 black 。
aladdindingding
2020-07-21 09:17:06 +08:00
看了看 好我们公司的类似 好代码就应该这么写
llsquaer
2020-07-21 09:32:50 +08:00
自己的规范
变量名 小写英文, 或者 v+中文
全局 大写英文,或者 c+中文
函数 中文
类 首字母大写即可,其他不强求
类方法 中文

哈哈哈!!!
zzzmj
2020-07-23 10:08:04 +08:00
@chenqh 统一风格其实还不错,反正写了个 git pre-commit hooks,除了 pylint 其他的耗时还行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/691527

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX