python中函数,迭代器

1.函数

1.函数可以作为参数进行传递

2.函数可以作为返回值进行返回

3.函数名称可以当成变量一样进行赋值操作

python 复制代码
#1.函数可以作为参数进行传递
def force_fn(fn):    #其中参数fn为函数
    fn()             #执行此函数


#2.函数可以作为返回值进行返回
def func():
    def inner():
        print('123')
    return inner

ret = func()  #其中ret为函数inner
ret()         #执行ret函数


#3.函数名称可以当成变量一样进行赋值操作
def func1():
    print('函数1')
def func():
    print('函数2')
func1 = func2
func1() #此时输出 函数2

2.装饰器

作用:在不改变原有函数调用的情况下,给函数增加新的功能

即可以在函数前面增加新的功能,但不改变原来的代码

python 复制代码
#通用装饰器的写法:
def wrapper(fn):   #wrapper:装饰器, fn:目标函数
    def inner(*args,**kwargs):
        #在目标函数执行之前添加代码...
        ret = fn(*args,**kwargs)   #执行目标函数
        #在目标函数执行之后添加代码...
        return ret
    return inner


#使用装饰器
@wrapper   
def target():
    pass


注:一个函数可以使用多个装饰器
@wrapper1
@wrapper2
def target():
    pass

执行顺序(嵌套规则): wrapper1 wrapper2 target wrapper1 wrapper2
相关推荐
2301_77355362几秒前
Navicat模型工具高级应用:怎样自定义模型节点颜色样式_机制解析
jvm·数据库·python
2301_816660212 分钟前
mysql在生产环境执行DDL的风险_如何使用GH-OST在线修改
jvm·数据库·python
m0_743623923 分钟前
mysql如何限制用户连接数_使用MAX_USER_CONNECTIONS优化并发
jvm·数据库·python
解救女汉子4 分钟前
如何防止SQL注入式非法删除_使用预处理语句绑定参数
jvm·数据库·python
2301_782659184 分钟前
C#怎么将集合分块处理_C#如何使用Chunk方法【实战】
jvm·数据库·python
Full Stack Developme4 分钟前
Hutool XML 操作教程
xml·windows·python
qq_424098565 分钟前
如何分析enq- TM - contention_外键未建索引导致的表级锁阻塞
jvm·数据库·python
淘矿人5 分钟前
2026大模型API中转平台深度评测:weelinking领衔五大服务商横向实测与选型指南
开发语言·人工智能·python·oracle·数据挖掘·php·pygame
tq10867 分钟前
从工具调用到符号思维:持久化Lisp元编程循环中的大语言模型
开发语言·语言模型·lisp
qq_334563557 分钟前
如何让水平滚动条始终固定在页面底部可见
jvm·数据库·python