正常的初始化略过,讲讲初始化里面遇到的问题。
今天以为名叫“bill”的网友问了我一个相当“深奥”的问题,上图:
这个问题出自“廖雪峰的官网”
其实这个函数很好理解,但是有个小问题:
明明被初始化了的L,为什么在默认参数的情况下,会一直被调用。
廖雪峰给的解释是:
bill没看明白,我也看的云里雾里。我的第一反应是c语言里面的指针。呵呵,我就是因为看不懂指针才来学python的,但是为了回答bill的问题,我在网上仔细的查了一下。
最后得出了一个我觉得很靠谱,很容易明白的解释。
首先,我们要先补充一下概念。
什么是“可变量”,什么是“不可变量”
我不想说定义,因为我也没太看明白。
我们只需要了解,在python中
不可变量:字符串(str),数值(int float),元组(turpe)
可变量:列表(list),字典(dict),集合
在python函数中
可变量在每次调用时都会被初始化。
不可变量只有在第一次调用中会被初始化(往后的调用都是建立在前一次调用的运算基础上的)。
解决方案:
用不可变量做参数,然后通过判断,重新初始化
领取专属 10元无门槛券
私享最新 技术干货