zoukankan      html  css  js  c++  java
  • python_07 函数作用域、匿名函数

    函数的作用域:无论在哪个地方调用函数,函数运行过程中的作用域只跟定义的时候有关,跟在哪个地方调用无关。

    name='alex'
    def foo():
        name = 'linhaifeng'
        def bar():
            name = 'wupeiqi'
            print(name)
        return bar
    a=foo()
    print(a)
    a()
    
    >>><function foo.<locals>.bar at 0x00000269B6F772F0>
    wupeiqi

    ps:函数若不加括号直接打印,则打印的是函数在内存中的地址

    def test():
        print('in the test')
    def test1():
        print('in the test1')
        return test
    res=test1()
    print(res())
    
    >>>in the test1
    in the test
    None

    匿名函数

    lambda匿名函数语法结构:

    变量=lambda关键字 形参:函数返回值

    若不给其赋值,则与写一个数字1一样,运行到下一行代码,python编译器会自动释放掉其占用的内存

    一般与其他函数连用

    #匿名函数,lambda关键字
    
    def calc(x):
        return x+1
    res=calc(10)
    print(res)
    
    #上面的函数等价于下面的函数
    func=lambda x:x+1
    print(func(10))
    
    >>>11
    >>>11
    name='alex'  #name='alex_sb'
    
    def change_name(x):
        return x+'_sb'
    print(change_name(name))
    
    
    v=lambda n:n+'_sb'
    print(v(name))
    
    >>>alex_sb
    >>>alex_sb

    若要返回多个值,需加括号,在普通函数中返回多个值python自动将返回值定义到元组中

    f=lambda x,y,z:(x+1,y+2,z+3)
    print(f(1,2,3))
    
    >>>(2, 4, 6)
  • 相关阅读:
    Element+Vue.js 选择器常用属性
    常用xml头文件
    【链接】调查显示:超20%美国大学生曾花学生贷款投
    Quartz遇到的问题
    List去重
    SpringDataJPA
    IDEA:Error during artifact deployment. See server log for details.详解
    Quartz定时任务
    多线程条件通行工具——CountDownLatch
    多线程同步工具——Lock
  • 原文地址:https://www.cnblogs.com/Manuel/p/10531214.html
Copyright © 2011-2022 走看看