1.匿名函数
匿名函数:lambda表达式:通过一个表达式实现函数功能
基本语法:lambda 参数列表:表达式语句
参数列表:用来给表达式传递数据
表达式语句:计算表达式,计算结果会自动输出
注意事项:lambda表达式,主要是用来替代功能简单的函数的!提高代码的简洁性
不要滥用!大量使用lambda表达式会造成代码可读性的严重下降!
fn = lambda x, y: x + y
# 等价于
def fn2(x, y):
return x + y
print(fn(1, 2))
print(fn2(11, 22))
2.闭包
闭包就是函数里面嵌套一个函数
因为函数的出现,导致变量出现了分化:全局变量、局部变量
全局变量:当前模块中任意地方都能访问!
局部变量:当前函数中可以操作
~全局变量-局部变量:变量-在函数外部调用访问:
def outer():
msg = "这是一个局部变量"
print("这是一个函数", msg)
def inner():
print("可以访问外部变量msg", msg)
return msg
return inner
3.偏函数
PYTHON中的偏函数,就是一个语法糖
def show2(name, msg):
print(name, ": " , msg)
from functools import partial
s = partial(show2, msg="HI")
s("tom")
show2("jerry", "hello)
4.函数的扩展了解
1. 函数也是一个对象:函数有自己的内存地址
'''
# 函数的引用赋值
def show():
print("函数执行中....落霞与孤鹜齐飞")
print(id(show)) # 1922539728544
print(show) # <function show at 0x0000026F32302EA0>
# 将函数的地址赋值给一个变量
a = show
# 通过变量也可以调用执行函数
a()
# import threading
# threading.current_thread().isAlive()
# self.isAlive = self.is_alive
'''
# 2. 函数的传值操作:设计模式:策略模式
def show(message):
# show函数需要一个参数message,参数需要传递一个函数
message()
def show_msg1():
print("输出卧龙的 攻击 策略")
def show_msg2():
print("输出凤雏的 防守 策略")
# 调用执行函数show,传递给函数的参数:也是一个函数
# show(show_msg1)
show(show_msg2)
网友评论