为了账号安全,请及时绑定邮箱和手机立即绑定

python 闭包 在循环中定义函数,函数变量会直接引用循环变量

python 闭包 在循环中定义函数,函数变量会直接引用循环变量(下面函数使用:def f(j):  和  def f(j=i): 都能正常执行,为什么j 默认会等于i 呢?)

def count():

    fs=[]

    for i in range(1,4):

        #print('i=',i)

        #def f(j):

        def f(j=i):

            #print('j',j)

            def g():

                return j*j

            return g

        r=f(i)

        fs.append(r)

    return fs

f1,f2,f3=count()

print(f1(),f2(),f3())


正在回答

2 回答

你看下r=f(i)和程序中的f(j)函数,这样你会发现j是形参,i就相当于传入的参数,所以就是相等的了

1 回复 有任何疑惑可以回复我~

抱歉,不明白题目意思,请明确一下。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

python 闭包 在循环中定义函数,函数变量会直接引用循环变量

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信