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