Python 高级语法

闭包

  • 概念:双重函数嵌套,内层函数可以访问外层函数的变量。
  • 基本语法
bash 复制代码
def 外部函数名(外部变量):

    def 内部函数名():

        函数体               #可使用外部函数的变量

    return 内部函数名

装饰器

  • 概念:特殊的闭包,无需改动目标函数的源代码,即可为其增加新功能。
  • 应用场景:希望给 work () 函数增加俩功能:
  • 1.在调用 work 前输出 "高效学习知识"
  • 2.在调用 work 之后输出 "享受人生"
python 复制代码
def work():

    print("努力工作")
  • 装饰器实现
bash 复制代码
def work():

    print("努力工作")

def outer(func):

    def inner():

        print("高效学习知识")

        func()

        print("享受人生")

    return inner

if __name__ == "__main__":

    fn = outer(work)

    fn()
相关推荐
先知后行。几秒前
QT实现计算器
开发语言·qt
掘根1 分钟前
【Qt】常用控件3——显示类控件
开发语言·数据库·qt
万粉变现经纪人2 小时前
如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘tokenizers’ 问题
python·selenium·测试工具·scrapy·beautifulsoup·fastapi·pip
西阳未落4 小时前
C++基础(21)——内存管理
开发语言·c++·面试
编程武士4 小时前
从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践
人工智能·python·yolo·性能优化
我的xiaodoujiao4 小时前
Windows系统Web UI自动化测试学习系列2--环境搭建--Python-PyCharm-Selenium
开发语言·python·测试工具
callJJ4 小时前
从 0 开始理解 Spring 的核心思想 —— IoC 和 DI(2)
java·开发语言·后端·spring·ioc·di
hsjkdhs6 小时前
万字详解C++之构造函数析构函数
开发语言·c++
Lin_Aries_04216 小时前
容器化简单的 Java 应用程序
java·linux·运维·开发语言·docker·容器·rpc
傻啦嘿哟6 小时前
Python SQLite模块:轻量级数据库的实战指南
数据库·python·sqlite