课程
/后端开发
/Python
/python进阶
只看了答案第一段的提示之后,我知道了问题所在是函数错调用了定义外的变量,然后我试着写了图中的代码,运行成功,再看答案就懵了,咋肥事啊,他比我多定义了一个g(),和我这个哪个是正确的,区别在哪
2018-11-01
源自:python进阶 2-9
正在回答
两端代码其实是一样的。因为你在定义第二个函数def f(j=i)的时候引用了另外一个变量j,此时数组中的引用变量指向的也不是i,而是j所指向的内容。但是这里又因为外面套了一个for循环,所以,可以看做循环一次,调用一个变量j。如果你理解堆和栈,那就更容易理解了。总之,你可以理解成你的这个代码是答案的简写版。
代码有点冗余,可以使用ifelse简化下,加温。前台就可以直接下载,用canvas得到dataurl
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计