1
PbCopy111 2020-07-20 12:50:23 +08:00
这是你的理论,还是大家约定俗称的理论啊??就看前几条,很多教程里面都不是这样子的啊。。
|
2
ampedee 2020-07-20 13:05:41 +08:00 via Android
挺棒的👍
|
3
siteshen 2020-07-20 13:06:39 +08:00 2
用了 https://github.com/psf/black 后,再也不用管单引号、双引号、空格的问题了。
|
4
Lonersun OP @PbCopy111 一部分是自己在实际项目中的经验教训,一部分是参考了大家约定俗称的东西,也参考了阿里 JAVA 编码规范的一些东西,我个人认为编码规范没有对错之分,这更像一个契约,一个自己团队能保持风格一致的规则,如果有利于代码维护,那目的就达到了。
|
5
renmu123 2020-07-20 13:20:42 +08:00 via Android
大家应该都是遵守 pep8 规范的
|
6
volvo007 2020-07-20 13:24:26 +08:00
任何货币金额,均以最小货币单位且整型类型来进行存储
这一条,不应该用字符串来保存吗? |
7
aeron 2020-07-20 13:24:32 +08:00 via Android
不是有现成的规范 PEP8 吗
|
8
j2gg0s 2020-07-20 13:24:48 +08:00
好 Google Python Style 或者 pep8 的显著区别在于? https://zh.wikipedia.org/wiki/%E5%A5%A5%E5%8D%A1%E5%A7%86%E5%89%83%E5%88%80
|
9
Vegetable 2020-07-20 13:32:56 +08:00
没什么大问题,可以在公司内部使用。
|
10
laike9m 2020-07-20 13:35:41 +08:00
大概看了一下还行,只不过这个例子应该用 constants.MALE 而不是 SEX_MAN
正例:[能通过常量的名称知晓所指的含义] if sex == constants.SEX_MAN: return False |
11
xiangyuecn 2020-07-20 13:36:52 +08:00
python 不是怎么方便怎么来吗,哪来那么多条条框框,就图个方便,没别的
|
14
Lonersun OP |
15
qW7bo2FbzbC0 2020-07-20 13:45:26 +08:00
```python
apple = "苹果" apples = ["苹果 1", "苹果 2"] ``` 我一般是使用 ``` apple = "苹果 1" apple_list = ["苹果 1", "苹果 2"] ``` |
16
no1xsyzy 2020-07-20 13:46:05 +08:00
promise 是什么鬼,不应该是 convention 吗?
|
17
laike9m 2020-07-20 13:46:32 +08:00
https://v2ex.com/i/b6tF78T0.png
这一条我不赞同。空行违背了大多人的代码习惯,并且其它 style guide 也没有要求空行的。 https://v2ex.com/i/5X09U4mz.png 在 Python 3 里已经没必要了 https://v2ex.com/i/BNSgc85m.png 没看懂 |
19
Lonersun OP @xiangyuecn 简单的、一次性的项目没有那么多框框,但是针对一些比较中大型的项目,一些规范还是必要的,否则后期维护简直是灾难,就我们现在的项目开发维护了两年,大大小小迭代了十几个版本,研发前前后后小二十人,如果没有规范,维护起来还是很难的,而且好多规范不同语言之间道理是相同的,在看 JAVA 规范的时候发现好多可以借鉴的地方
|
20
fanjianhang 2020-07-20 13:51:15 +08:00
挺好的
|
21
laike9m 2020-07-20 13:52:17 +08:00
|
22
ijustdo 2020-07-20 13:59:56 +08:00
不错 大部分像约定俗成的 呵呵
|
23
Lonersun OP @laike9m 第一个问题:我们在做一些复杂逻辑处理的时候,增加必要的空行会让代码读起来更清晰些吧,比如下单接口,第一进行库存处理,第二下单处理,第三扣款处理,如果三块没有空行对读代码的人可能不太友好,当然这种复杂类的还是要拆方法;
第二 中文前加 u, 我没有注明是 python2,python3 已经不需了,目前我们还是 python2,编码问题还是比较累 第三条,我写的不太明确 错误: def test(): # 测试方法 正确: def test(): """测试方法""" 感觉这种方法的注释,Numpy 这个包的开发者写的注释非常好 非常感谢您指出的问题 |
24
laike9m 2020-07-20 14:10:34 +08:00
空行那个反正我只能说没见过这种写法,包括其它语言。有的人喜欢在多行的结构周围加空行,比如 for 循环,if...else, try...catch 等,这当然是 ok 的,我自己也喜欢这么做。但是一个 if...elif...else 的逻辑是一体的,放在一起更加合理。
注释那个,你用的是 * (星号)而不是 " (双引号),是不是写错了? |
26
ifzzzh 2020-07-20 15:45:38 +08:00
# 判断传入的验证码如果不等于默认的验证码则返回 False
if verify_code != default_code: return False else: return True emmmmm |
27
cz5424 2020-07-20 15:57:00 +08:00 via iPhone
遵守一下 pep8
|
28
ruanimal 2020-07-20 16:20:46 +08:00
用 Google 规范不好吗。。
|
29
Johnny168 2020-07-20 17:11:50 +08:00
公司内部开发字典
|
30
j0hnj 2020-07-20 17:18:24 +08:00
(三) 9.每个 py 文件在头行必须添加 # -- coding:utf-8 --。
这个在 Python3 中也没有必要了 |
31
renzhezheng 2020-07-20 17:35:36 +08:00
你这 if-else 就不符合最少编码原则
|
32
stephenyin 2020-07-20 18:39:36 +08:00
用 sex 真的合适么🙃?
|
33
zzzmj 2020-07-20 18:40:34 +08:00
最近参与的 py 项目都是 flake8+isort+pylint+black 的多重狗逼校验。
|
35
OakScript 2020-07-20 19:39:23 +08:00
|
36
brickxu 2020-07-20 21:03:15 +08:00
给人感觉是 Java 程序员转行 Python 给下的规范。。。
|
37
forrestchang 2020-07-20 21:46:59 +08:00
更推荐 black 。
|
38
aladdindingding 2020-07-21 09:17:06 +08:00
看了看 好我们公司的类似 好代码就应该这么写
|
39
llsquaer 2020-07-21 09:32:50 +08:00
自己的规范
变量名 小写英文, 或者 v+中文 全局 大写英文,或者 c+中文 函数 中文 类 首字母大写即可,其他不强求 类方法 中文 哈哈哈!!! |