背景
最近在写爬虫,程序总是不对,第一次循环没问题,第二次就不行。各种打断点,最后猜到是不是函数默认值同php语法不同?
百度了一番,用本篇记录一下这个坑。
示例
写了个示例代码,这是一段两次调用相同方法的示例,按照php的逻辑会是每次调用没传值,会使用默认值,而且python并不如此,默认值相当于一个静态变量。
def test(max_num, list=[]):
print('start list:', list)
for i in range(1, max_num):
if i % 3 == 0:
list.append(i)
print('stop list:', list)
print('start 1')
test(10)
print('start 2')
test(10)
结果如图: