python编程之美04.1
上图是python的标准循环,python提供了强大的操作列表。
代码续行
当代码的长度超过可接受的物理行长度时,需要将其分为多个物理行。如果代码行的最后
一个字符是反斜线,那么python解释器会把这些连续的行拼接在一起
但通常应该避免。优雅的做法则是用一个括号来包括。
忽略一个值
如果解包时需要赋值而又不需要其中一个值,那么可以使用双下划綫(__)
创建一个包含N个相同对象的列表
使用python列表的*操作符来创建一个包含相同不可变元素的列表
常见陷阱
可变的默认参数
上图代码,你期待的结果是什么?是不是出乎意料
新列表仅在函数定义时被创建一次后续每次函数调用都使用同一个列表。
你应该这么做:
调用函数时,使用一个默认参数值表示没有提供参数(通常是会使用None),每次都创建一个新的对象。
这个陷阱何时才不是陷阱呢?
有时你可以利用这个行为在多次函数调用之间维持状态,这个行为通常用在编写缓存函数时(将结果保存在内存中),例如
