起源于一道面试题... def mul(): return [lambda x : i*x for i in range(4)] print([m(2) for m in mul()]) # output: # [6, 6, 6, 6] 为什么答案是[6,6,6,6]而不是[0,2,4,6]呢? 为了便于理解,把代码改写成下面的样子 def mul(): func_list = [] for i in range(4): def lam(x): return x*i func_list.appe
自定制prooerty: #模拟@property 实现将类的函数属性变成类属性: #定义描述符 class msf(): def __init__(self,obj): self.obj = obj def __get__(self, instance, owner): if instance is None: return self re = self.obj(instance) instance.__dict__[self.obj.__name__] = re return re clas
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.3 用HTTP协议获取一张图片 在上一节的例子中,我们获取的是一个有换行符的文本文件,并简单的把它显示在屏幕上.同样我们可以用一个小程序通过HTTP协议获取图片.下面这个程序运行时,不是直接在屏幕上显示数据,而是剔除头信息,然后将收到的数据合并保存为一个图片文件.具体代码如下: import socket import time my