codecamp

Python 禁用的黑魔法 | Google 官方避坑指南

威力过大的功能

Tip
避开这些功能.

定义:

Python 是一种异常灵活的语言,有大量花哨的功能,诸如自定义元类(metaclasses),读取字节码(bytecode),及时编译(on-the-fly compilation),动态继承,对象基类重设(object reparenting),导入(import)技巧,反射(例如 getattr()),系统内部状态的修改,__del__ 实现的自定义清理等等。

优点:

强大的语言功能让代码紧凑。

缺点:

这些很“酷”的功能十分诱人,但多数情况下没必要使用。包含奇技淫巧的代码难以阅读、理解和调试。一开始可能还好(对原作者而言),但以后回顾代码时,这种代码通常比那些长而直白的代码更加深奥。

结论:

避开这些功能。

可以使用那些在内部利用了这些功能的标准模块和类,比如 abc.ABCMetadataclasses 和 enum

Python 线程安全规范 | Google 官方并发指南
Python future 导入规范 | Google 官方现代语法指南
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }