我眼中一个好的Pythoneer应该具备的品质
- 知道python常见的解释器有哪些。
- 知道python的语法,缩进和符号对应的含义。
- 知道python所有关键字的含义和使用。
- 知道python中大部分常用的类型(布尔值,字符串类型,数字类型,序列,集合,字典,生成器...)。
- 知道如何编写pythonic的代码(上下文管理器,推导表达式,装饰器,切片…)。
- 知道如何避免python中的一些坑,如可变的默认参数,闭包的迟绑定。
- 知道python中的函数式编程以及map、filter的使用。
- 知道list,tuple,dict,set等的时间复杂度和空间复杂度。
- 知道GIL的限制以及与多线程的关系。
- 知道python的命名空间查找规则(LEGB)。
- 知道python多继承的查找规则(MRO)。
- 知道python 2.x和3.x的主要差异。
- 知道property的含义以及其描述器实现。
- 知道python中dict的底层实现,以及与OrderDict的关系。
- 知道
__slots__
的含义以及使用场景。 - 知道如何定义和使用元类,了解其使用场景。
- 知道python中的多进程和多线程模型,知道多进程和多线程下间的通信实现。
- 知道进程池和线程池在python中对应的库和使用方式。
- 知道python中多线程间常用的同步原语的使用方式。
- 知道python大多数常用的标准库以及其用途。
- 知道python中type和object之间的关系。
- 知道深拷贝和浅拷贝在python中的实现方式。
- 知道python的调试工具(
logging
,pdb
),知道unittest
和doctest
的使用。 - 知道python中的打包方式(
setup.py
)。 - 知道PEP8常见的范式以及代码格式化方法。
- 知道str,bytes和字符串编码的关系以及其相互转换的方法。
- 知道python中的几种字符串拼接方式与效率对比。
- 知道鸭子类型(duck typing)的含义与其在python中的表现形式。
- 知道函数和方法的区别,知道绑定方法(bound-method)与未绑定方法(unbound-method)的关系。
- 知道
a = list()
和a = []
的区别。 - 知道dict和set的常见操作,知道set之间集合运算的语法糖。
- 知道asyncio的使用方式和使用场景。
- 知道如何用python实现常用的设计模式。
- 知道如何用python做web编程,以及WSGI协议是什么。
- 知道如何利用
collections
,itertools
,operator
等模块来高效地操作容器对象。 - 知道使用python中正则表达式的匹配、查找、切分和替换。
- 知道如何使用
virtualenv
,清楚其用途。 - 知道如何使用
pip
,以及其与requirements
文件的关系。 - 知道python中序列化的常用库和接口(
json
,pickle
)。 - 知道
os
和sys
库常用的方法,和操作文件和目录的方式。 - 知道python中
datetime
库的常用操作。 - 知道普通文件/二进制文件读写的方式,知道
StringIO
和BytesIO
的用途。 - 知道以单下划线开头、双下划线开头和双下划线包围的变量分别代表着什么含义。
- 知道
__init__
和__new__
方法在class和type中分别的作用是什么。 - 知道类变量和实例变量的区别。
- 知道
__dict__
在类中的含义,以及类属性和方法与__dict__
的关系。 - 知道Mixin模式以及在python中的用途。
- 知道python中生成器的实现以及其使用场景。
- 知道python中抽象类的实现方式,以及其抽象基类模块,知道如何用python类实现一个抽象容器类型。
- 知道
dict
和UserDict
的关系,以及为什么有UserDict
的存在。 - 知道普通方法,
classmethod
和staticmethod
的区别。 - 知道装饰器中添加
functools.wraps
的含义与作用。 - 知道
__getattr__
和__getattribute__
的作用以及其顺序关系。 - 知道python中性能测量的方式,如
cProfile
,tracemalloc
。 - 知道python中自省的使用方式,知道
inspect
库的常见用法。 - 知道python中的模块定义,以及导入模块的各种姿势。
- 知道python中弱引用的使用方式,知道python中gc的回收算法方式以及回收规则。
- 知道
sys.settrace
和sys.setprofile
在python中的用途和使用方式。 - 知道
global
,local
和nonlocal
关键字在python中的含义和其使用场景。 - 知道python中
==
与is
的区别。 - 知道
for-else
,try-else
的含义和用途。 - 知道
.pyc
文件的含义,清楚python代码大概的执行过程。 - 知道python代码的中文编码处理,以及如何处理乱码。
- 知道
_
在python解释器中的含义。 - 知道python中格式化字符串的方式以及其常见格式语法。
- 知道python中常见的魔术方法和其使用方式。
- 知道python项目的文件/包的组织方式(感谢评论区)
以上只是本弱渣的个人看法,列的不全,欢迎讨论。
相关文章