匿名函数

 1 '''
 2 概念:不使用def这个关键字定义函数,用lambda关键字来创建匿名函数。
 3 特点:
 4 1、lambda 只是一个表达式,函数体比def简单的多
 5 2、lambda本质是表达式,而不是代码块,仅仅只能封装最简单的逻辑
 6 3、lambda函数有自己的命名空间,并且不能修改除自己的参数列表以外的
 7 参数或全局命名空间的参数
 8 
 9 格式:lambda [参数1[,参数2…参数n ]]: 表达式
10 注意:表达式:只是一条简单的语句,不能包含循环,也不能有return,
11 也不能有yield,但允许有简单的if语句。如果表达式为元组,
12 用小括号括起来。
13 '''
14 # 定义一个函数,返回传入的实参的和 (形参有两个)
15 def func1(num1, num2):
16     return num1+num2
17 print(func1(1,2))
18 
19 # 匿名函数
20 a = lambda num1,num2 : num2+num1
21 print(a(2,3))
22 
23 # lambda中使用if语句  if-else
24 # 语法格式:
25 # lambda [参数1[,参数2…参数n ]]: 结论1 if 表达式 else 结论2
26 # 当表达式为真时,取结论1;当表达式为假时,取结论2
27 '''
28 # 结论1 if 表达式 else 结论2
29 a = 20
30 if True:
31     a = 30  # 结论1
32 else:
33     a = 40   # 结论2
34 '''
35 
36 # num   num<0  num = 1  num>=0  num
37 def re(num):
38     if num < 0:
39         num = 1
40     return num
41 print(re(-2))
42 print(re(100))
43 
44 b = lambda num : 1 if num<0 else num
45 print(b(200))
46 print(b(-100))
47 
48 
49 # 一般匿名函数只执行一次,用完就结束
50 print((lambda num : 1 if num<0 else num)(111))
51 print((lambda num : 1 if num<0 else num)(-111))

 

posted @ 2019-07-29 19:20  巨菜的小鸟  阅读(147)  评论(0编辑  收藏  举报