4

Python函数的一些重要特性与lambda表达式 | CHEGVA

 1 year ago
source link: https://chegva.com/5493.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Python进阶(31)—函数的一些重要特性与lambda表达式

◎知识点

  1. 函数的一些重要特性

  2. lambda表达式

◎脚本练习

▽ 函数的一些重要特性

"""
    在python中,一切皆为对象。所以,函数也是对象,从而函数可以被赋值给变量
"""

def add(num1, num2):
    return num1 + num2

print(add)  # <function add at 0x104eabb80>

f = add
print(f(1, 2))  # 3

"""
    一个函数可以作为另一个函数的实参
"""

def eval_square(x):
    return x * x

result = map(eval_square, [1, 2, 3, 4])
print(list(result)) # [1, 4, 9, 16]

"""
    一个函数可以作为另一个函数的返回值
"""

def do_sth():
    return add

print(do_sth()(1, 2))   # 3

"""
    一个函数可以嵌套定义在另一个函数中
"""

def outer():
    def inner():
        print("This is inner")
    return inner

outer()()   # This is inner
Python

▽ lambda表达式

"""
定义函数的语法格式:
    def 函数名([形式参数1, 形式参数2, ..., 形式参数n]):
        函数体
        
    当函数体中只有一行return语句时,函数的定义可以用一个lambda表达式来代替,其语法格式为:
    lambda [形式参数1, 形式参数2, ..., 形式参数n]: 关于形式参数的表达式
    
    与定义函数的语法格式相比,lambda表达式:
    (1) 没有函数名
    (2) 没有关键字def
    (3) 没有小括号
    (4) 关于形式参数的表达式相当于函数的返回值
    
    lambda表达式就是匿名简化版的函数
"""

def add(num1, num2):
    return num1 + num2

print(add(1, 2))    # 3

print((lambda num1, num2: num1 + num2)(1, 2))   # 3

"""
    在python中,一切皆为对象。所以,lambda表达式也是对象,从而lambda表达式可以被赋值给变量
"""

le = lambda num1, num2: num1 + num2
print(le(1, 2)) # 3

"""
    因为lambda表达式是匿名简化版的函数,所以,lambda表达式可以作为函数的实参
"""

result = map(lambda x: x * x, [1, 2, 3, 4])
print(list(result)) # [1, 4, 9, 16]

"""
    因为lambda表达式是匿名简化版的函数,所以,lambda表达式可以作为函数的返回值
"""

def do_sth():
    return lambda num1, num2: num1 + num2

print(do_sth()(1, 2))   # 3
Python

◎脚本地址:

安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/5493.html | ☆★★每天进步一点点,加油!★★☆ | 

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK