- 理解Pythonic的概念
- 编写Pythonic代码
- 理解Python与C语言的不同之处
- 在代码中适当添加注释
- 适当添加空行使代码布局更为优雅、合理
- 编写函数的四个原则(原则一:函数设计尽量短小,嵌套层次不宜过深,原则二:函数申明做到合理、简单、易于使用。原则三:函数参数设计应该考虑向下兼容。原则四:一个函数只做一件事,尽量保证函数语句粒度的一致性。)
- 将常量集中到一个文件
- 利用
assert
语句来发现问题 - 数据交换值的时候不推荐使用中间变量
- 充分利用
Lazy evaluation
的特性 - 理解枚举代替实现的缺陷
- 不推荐使用
type
来进行类型检查 - 尽量转换为浮点类型后在做除法
- 警惕
eval()
的安全漏洞 - 使用
enumerate()
获取序列迭代的索引和值 - 分清
==
与is
的适用场景 - 考虑兼容性,尽可能适用
Unicode
- 构建合理的包层次来管理
module
- 有节制使使用
from...import
语句 - 优先使用
absolute import
来导入模块 i+1=1
不等于++1
- 使用
with
自动关闭资源 - 适用
else
子句简化循环(异常处理) - 遵循异常处理的几点基本原则(1.注意异常的粒度,不推荐在
try
中放入过多的代码。2.谨慎使用单独的except
的语句处理所有的异常,最好能定位具体的异常。3.注意异常的捕获的顺序,在合适的层次处理异常。4.使用更加友好的异常信息,遵循异常参数的规范) - 避免
finally
中可能发生的陷阱 - 深入理解
None
,正确判断对象是否为空 - 连接字符串优先使用
join
而不是+
- 格式化字符串是尽量使用
.format
方式而不是%
- 区别对待可变对象和不可变对象
[]
、{}
和()
:一致的容器初始化形式(使用列表解析式
([expr for iter_var in iterable if cond_expr]),元组,集合,字典也有类似的语法。)- 记住参数传参既不是传值也不是传引用
- 警惕默认参数潜在的问题
- 慎用变长参数
- 深入理解
str()
和repr()
的区别 - 分清
staticmethod
和classmethod
的适用场景 - 掌握字符串的基本用法
- 按需选择
sort()
或者sorted()
- 使用
copy
模块深拷贝对象 - 使用
Counter
进行技术统计 - 深入掌握
ConfigParser
(配置文件) - 使用
argparse
处理命令行参数 - 使用
pandas
处理大型CSV
文件 - 一般情况使用
ElementTree
解析XML
- 理解模块
pickle
的优劣 - 序列化的另外一个不错的选择——
JSON
- 使用
traceback
获取栈信息 - 使用
logging
记录日记信息 - 使用
threading
模块编写多线程程序 - 使用
Queue
是多线程编程更安全 - 利用模块实现单例模式
- 用
mixin
模式让程序更灵活 - 用发布订阅模式实现耦合
- 用状态模式美化代码
- 理解内建类型
buit-in objects
__init__()
不是构造方法- 理解名字查找机制
- 为什么需要
self
参数 - 理解
MRO
与多继承 - 理解描述符机制
- 区别
__getattr__()
和__getattribute__()
方法 - 使用更为安全的
property
- 掌握
metaclass
- 熟悉
Python
对象协议 - 利用操作符重载实现中缀语法
- 熟悉
Python
的迭代器协议 - 熟悉
Python
的生成器 - 基于生成器的协程及
greenlet
- 理解
GIL
的局限性 - 对象的管理与垃圾回收
- 从
pypi
安装包 - 使用
pip
和yolk
安装、管理包 - 做
paster
创建包 - 理解单元测试概念
- 为包编写单元测试
- 利用测试驱动开发提高代码的可能性
- 使用
Pylint
检查代码风格 - 进行高效的的代码审查
- 将包发布到
pypi
- 了解代码优化的基本原则
- 借助性能优化工具
- 利用
cProfile
定位性能瓶颈 - 使用
memory_profiler
和objgraph
剖析内存使用 - 努力降低算法复杂度
- 掌握循环优化的基本技巧
- 使用生成器提高效率
- 使用不同的数据结构优化性能
- 充分利用
set
的优势 - 使用
multiprocessing
克服GIL
的缺陷 - 使用线程池提高效率
- 利用
C/C++
模块扩展高性能 - 使用
Cython
编写扩展模块
改善Python程序的91个建议
猜你喜欢
转载自blog.csdn.net/qq_40965177/article/details/81840171
今日推荐
周排行