Python 面试中 8 个必考问题
怎样修改extendList的定义能够产生以下预期的行为?上面代码输出结果将是:。上述问题产生的原因是Python闭包的延迟绑定。这意味着内部函数被调用时,参数的值在闭包内进行查找。碰巧的是,《The Hitchhiker's Guide to Python》也指出,在与lambdas函数相关也有一个被广泛被误解的知识点,不过跟这个case不一样。一种解决方法就是用Python生成器。另外一个解决方案就是创造一个闭包,利用默认函数立即绑定。此答案的关键是,在Python中,类变量在内部是以字典的形式进行传递。在Python2中,上述代码输出将是。默认情况下,Python 2 自动执行整形计算如果两者都是整数。这个表达式工作的步骤是,第一步取出偶数切片的数字,第二步剔除其中所有奇数。当key缺失时,执行DefaultDict类,字典的实例将自动实例化这个数列。
下载地址
用户评论