Python是一种异常灵活的语言, 有大量花哨的功能, 诸如自定义元类(metaclasses), 读取字节码(bytecode), 及时编译(on-the-fly compilation), 动态继承, 对象基类重设(object reparenting), 导入(import)技巧, 反射(例如 getattr()
), 系统内部状态的修改, __del__
实现的自定义清理等等.
优点:
强大的语言功能让代码紧凑.
缺点:
这些很”酷”的功能十分诱人, 但多数情况下没必要使用. 包含奇技淫巧的代码难以阅读、理解和调试. 一开始可能还好(对原作者而言), 但以后回顾代码时, 这种代码通常比那些长而直白的代码更加深奥.
结论:
避开这些功能.
可以使用那些在内部利用了这些功能的标准模块和类, 比如 abc.ABCMeta
, dataclasses
和 enum
.