廖学峰PYTHON 返回函数疑问
2016-04-11 12:53
676 查看
def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count()
>>> f1() 9 >>> f2() 9 >>> f3() 9
为何结果是9,9,9不是1,4,9?
解答:
count函数运行完以后,
fs = [f, f, f]
f1, f2, f3 = count()
相当于
[f1, f2, f3] = [f, f, f]
相当于
f1 = f
f2 = f
f3 = f
f函数返回的是i的平方,i是3,所以返回9, 9, 9
相关文章推荐
- Python 核心编程chap7学习笔记
- [转] python 模块学习 hashlib
- python-面向对象(四)——类成员的访问方式汇总
- python编程实践小结2016-04-11
- python-面向对象(三)——类的特殊成员
- Python:字符串的多重替换
- 用PYTHON进行字符串提取的两种方法
- 关于PDNN、Theano、Numpy以及Scipy的安装
- python初学者笔记——命名空间
- 【python】python for data analysis环境安装
- Python陷阱:tuple与Nonetype
- python面向对象(二)——类成员
- python学习笔记4(对象/引用;多范式; 上下文管理器)
- UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position xxx ordinal...
- 【教程】七步精通Python机器学习
- cannot import name 'Flask' 的错误
- python-面向对象(一)——开篇基础
- 【转】zhihu图片下载工具
- 求素数 -- Python实现
- python 新手入门学习(一)