美文网首页
Python 后期绑定问题

Python 后期绑定问题

作者: tingshuo123 | 来源:发表于2019-03-28 18:09 被阅读0次
    # test.py
    
    def funs1():
        return (lambda x: x+i for i in range(4))
    
    def funs2():
        return [lambda x: x+i for i in range(4)]
    
    def funs3():
        return [(lambda x, i=i: x+i) for i in range(4)]
    
    if __name__ == "__main__":
        print("fun1:")
        for f in funs1():
            print(f(0))
        print("fun2:")
        for f in funs2():
            print(f(0))
        print("fun3:")
        for f in funs3():
            print(f(0))
    

    结果

    # python3 test.py
    fun1:
    0
    1
    2
    3
    fun2:
    3
    3
    3
    3
    fun3:
    0
    1
    2
    3
    

    相关文章

      网友评论

          本文标题:Python 后期绑定问题

          本文链接:https://www.haomeiwen.com/subject/rlucbqtx.html