for i in range(5):
def test(i=i):
print(i)
test()
test()
test()
test()
test()
这会每次打印4个?有人可以帮助我理解这一点。带循环内默认参数的Python函数
for i in range(5):
def test(i=i):
print(i)
test()
test()
test()
test()
test()
这会每次打印4个?有人可以帮助我理解这一点。带循环内默认参数的Python函数
您重新定义test
4次:
一样:
#define test
def test(i = 0):
print(i)
#redefine test
def test(i = 1):
print(i)
#redefine test
def test(i = 2):
print(i)
#redefine test
def test(i = 3):
print(i)
#redefine test
def test(i = 4):
print(i)
所以你只有1 test()
最后一个。
函数test
在循环的每次迭代中都被重新定义。
通过循环完成的时间,test
很简单:
def test(i=4):
print(i)
第一脚本完成了环路,由for循环,我值为4
那么多少有史以来次结束,你可以调用test()
,将打印4
我已经添加了一些打印到你的代码,这样就可以了解流量更好
for i in range(5):
print(i)
def test(i=i):
print("test")
print(i)
test()
test()
test()
test()
test()
输出将是:
0
1
2
3
4
test
4
test
4
test
4
test
4
test
4
您定义的函数'test'五倍。在完成五次定义之后,剩下的是最后一个,即'i == 4'。 – khelwood
我扩大了并添加了一些评论。 –
如果你想创建这样的几个函数,把它们放在一个列表或字典中。 – polku