PEP是 Python Enhancement Proposal 的缩写,翻译过来就是 Python增强建议书
PEP8 是什么呢,简单说就是一种编码规范,是为了让代码“更好看”,更容易被阅读。
具体有这些规范,参考 PEP 8 -- Style Guide for Python Code
For example
Yes: import os
import sys
No: import sys, os
Yes:
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)
No:
i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
对于初学者(例如我)来说,这些标准太多,在实际coding中可能很难记住所有的。之前招聘爬虫工程师,会PEP8也会加分,所以学习下PEP8还是有帮助的。
PyCharm 配置 PEP 8 代码提示 直接在右下角调整 Highlighting Level 为 Inspections 就能自动 PEP 8提示 (一般默认就是这个)
For example
鼠标移到上方会提示: PEP 8: expected 2 blank lines, found 1
,我们再增加一个空格就好了,你的代码中有任何不符合 PEP8 规范的地方都会有“~~~~~”提示
这是一个困扰了我很久的问题,我一直不知道是哪里出了错,看英文也不懂,最后去Google才知道,创建字典的写法不规范,应该这样写:
item = dict()
除了Pycharm,还有其他工具可以提示
好吧,这里才是正文,正确的规范如下:
IndentationError
#!/usr/bin/python
的 #
后不能有空格if/for/while
语句中,即使执行语句只有一句,也要另起一行def foo(first, second, third, fourth, fifth,
sixth, and_some_other_very_long_param):
user = User.objects.filter_by(first=first, second=second, third=third) \
.skip(100).limit(100) \
.all()
text = ('Long strings can be made up '
'of several shorter strings.')
from ..utils import parse
,最好使用全路径导入(absolute imports)# bad
import sys, os, time
# good
import os
import sys
import time
# ok
from flask import Flask, render_template, jsonify
# bad 无谓的注释
x = x + 1 # increase x by 1
# bad 错误的注释
x = x - 1 # increase x by 1
# bad
try:
user = User()
user.name = "leon"
user.age = int(age) # 可能抛出异常
user.created_at = datetime.datetime.utcnow()
db.session.add(user)
db.session.commit() # 可能抛出异常
except:
db.session.rollback()
# better
try:
age = int(age)
except (TypeError, ValueError):
return # 或别的操作
user = User()
user.name = "leon"
user.age = age
user.created_at = datetime.datetime.utcnow()
db.session.add(user)
try:
db.session.commit()
except sqlalchemy.exc.SQLAlchemyError: # 或者更具体的异常
db.session.rollback()
finally:
db.session.close()
Exception
而不是 BaseException
继承自定义的异常类join
方法拼接字符串string
模块的方法startswith
和 endswith
方法比较前缀和后缀format
方法格式化字符串 # bad
if d.has_key(k):
do_something()
# good
if k in d:
do_something()
写程序的好习惯在于理解、坚持,然后就是运用自如,你说呢?
本文分享自 Python爬虫与算法进阶 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!