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))
  • 相关阅读:
    java常用配置文件头部声明
    Error while launching application Error: spawn ENOMEM 解决
    Maven添加依赖后如何在IDEA中引用
    2017-2018 ACM-ICPC East Central North America Regional Contest (ECNA 2017)部分题解
    最小一乘法的一种数值算法?
    LOJ 6409. 「ICPC World Finals 2018」熊猫保护区
    min-max容斥复习
    BMCH
    大象
    关于高维卷积的一些不成熟的想法
  • 原文地址:https://www.cnblogs.com/BKY88888888/p/11265921.html
Copyright © 2011-2022 走看看