元类(metaclass)及动态属性(dynamic attribute)都是很强大的Python特性,然后他们也可能导致及其古怪.及其突然的行为.本节讲解这些机制的常见用法,以确保各位程序员写出来的代码符合最小惊讶原则(rule of least surprise). 第二十九条:用纯属性取代get和set方法 第三十条: 考虑用@property来代替属性重构 第三十一条:用描述符来改写需要复用的@property方法 第三十二条:用__getattr__.__getattribute__和…
小伙伴你的程序还是停留在糊墙吗?优化代码可以显示程序员的素质欧! 普及一下基础了欧: 一层for简写:y = [1,2,3,4,5,6],[(i*2) for i in y ] 会输出 [2, 4, 6, 8, 10, 12] ,标准形式为: [ 对i的操作 for i in 列表 ] 两层for循环:[对i的操作 for 单个元素 in 列表 for i in 单个元素], 例子: y_list = ['assss','dvv'] [print(i) for y in y_li…
0.规则<The Elements of Programming Style><The Elements of Style> 1.假想的编译程序(1)使用编译器提供的所有的可选警告设施 增强类型静态检查的能力eg: void* memchr(const void* str, int ch, int size);那个调用该函数时,即使互换其字符ch和大小size参数,编译器也不会发出警告 但是如果在函数原型中使用更加精确的类型,就可以增强原型提供的错误检查能力void* memchr…