zoukankan      html  css  js  c++  java
  • 匿名函数

     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))
  • 相关阅读:
    HDOJ 2102 A计划(bfs)
    HDOJ 1226 超级密码(bfs)
    第一周——Photoshop软件的发展史,并说明其优缺点。
    第一周——Mobile Apps (手机应用)分析
    POJ 3090
    HDU 2824
    UVA 10673
    POJ 1061
    HDU 1358
    POJ 2406
  • 原文地址:https://www.cnblogs.com/BKY88888888/p/11265921.html
Copyright © 2011-2022 走看看