吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 542|回复: 2
收起左侧

[讨论] 在某段代码前后自动执行特定代码之python实现

[复制链接]
paypojie 发表于 2022-10-28 18:45
本帖最后由 paypojie 于 2022-10-28 18:55 编辑

                                                                            在某段代码前后自动执行指定代码


[Python] 纯文本查看 复制代码
from contextlib import contextmanager

@contextmanager
def test():
    # 在某段代码之前执行的
    print('%d' % 1)
    yield  # 返回并让程序在此暂停
    # 在某段代码之后执行的
    print('%d' % 4)


# 在这段代码前后自动执行特定代码 需要通过contextmanager装饰器实现 先从contextlib模块中导入contextmanager函数
# 然后用 @contextmanager语法 写在一个函数的上方 函数里面写先执行的代码 然后用yield语句 yield语句后的是后执行的代码
# 使用with语句来实现
with test():
    print('2 hello')
    print('3 world')

# 说一下代码执行顺序 with语句首先执行test()函数 会执行yield关键字之前的语句 输出 1
# yield语句返回yield之后的值(这里没有值) 并让程序在此自动暂停 然后执行with语句内部的所有语句 输出 
# hello 
# world
# with下的语句执行完了 再执行yield之后的语句 输出 2


环境:win11系统   
Python 3.9.9   vscode编辑器  

屏幕截图_20221028_184249.png


@contextmanager通过generator生成器来简化编写上下文管理 函数带yield关键字就是一个generator生成器

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
xiadongming 发表于 2022-10-29 16:20
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| paypojie 发表于 2022-10-29 16:52
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-14 03:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表