2018年12月11日 函数3-匿名函数

l_s=[]

def test(n):
    n=int(n/2)
    l_s.append(n)
    print(l_s)
    if n==1:
        return l_s #注意这里 return l_s 不是test对应的return
    test(n)
  
print(test(10))

 

函数作用域

name="sxj"
def test1():
    name="abc"
    def test2():
        name="love"
        print(name)
    return test2#返回内存地址 如果+括号 代表运行test2
a=test1()#返回了test2的地址
print(a)
a()#内存地址+括号 代表开始运行
test1()() 同上面 a()
 

函数运行的作用域和先前声明有关,和调用位置无关

 

 

匿名函数

lambda 行参:反馈值

func=lambda x:x+1  #定义匿名函数,如果print  则是内存地址
print(func(10))#lambda 自动return

匿名函数无复杂逻辑

#匿名函数

#例子:字符串+_sb
f=lambda name:name+"_sb"
print("方法1",f("abc"))

g=lambda n:"%s_sb"%n
print("方法2",g("wsc"))

def change_name(name):
    print('方法3',name+"_sb")
change_name("lex")

h=lambda x,y,z:(x+y+z,x*y*z)#如果返回多个值,需要增加一个括号
print("用法2",h(4,2,3))

 

posted @ 2018-12-11 12:51  小圣庄  阅读(126)  评论(0编辑  收藏  举报