python问题

2021/9/26 12:10:53

本文主要是介绍python问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 一、python问题
    • 1.匿名函数变量定义引用问题
  • 总结

一、python问题

1.匿名函数变量定义引用问题

下面的输出结果全是18

def testFun():
    temp = [lambda x : i*x for i in range(10)]
    return temp

for everyLambda in testFun():
    print(everyLambda(2))

解:
因为python中变量是先定义再引用,而lambda匿名函数又是全执行完了再引用,所以引用的值(i)全是最后一个(9)
加一个默认参数

def testFun():
    temp = [lambda x,i=i : i*x for i in range(10)]
    return temp

for everyLambda in testFun():
    print(everyLambda(2))

加了默认参数之后,python解释器每遇到默认参数时,都会初始化默认参数(i),这样,每循环一次,i就被引用一次。

总结

持续更新遇到的问题



这篇关于python问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程