在python中如何让一个函数分段执行呢?

2023-11-09

在python中如何让一个函数分段执行呢??
原因:

最新在写分针的逻辑, 最开始讲一大段代码分成好几个小的函数, 讲函数放进数组中, 每一帧执行一个, 但总是觉得这样写不够优美, 今天看到其他大神的代码,
记录一下思路

前提要理解generator:

python简单进阶,Generator

适用情况:

  1. 函数太大, 一帧执行不完
  2. 不想改变函数, 想在函数执行到某个地方的时候, 去做一些其他的事情
    总之就是想对函数的执行流程进行一些更改
测试
import sys
def process(str):
	print >> sys.stderr, str


def my_big_func():
	process('第一步')
	yield
	process('第二步')
	yield
	process('第三步')
	yield
	process('第四步')
	yield
	process('第五步')
	yield
	process('第六步')
	yield


my_tick_funcs = my_big_func()
while True:
	try:
		my_tick_funcs.next()
	except StopIteration:
		print 'big func end'
		break

执行结果:
在这里插入图片描述

我们甚至能够用更优美的方法来优化generator的循环

如下所示, 我们使用itertools的工具, 这样就避免了处理except StopIteration的循环结束异常

import sys
def process(str):
	print >> sys.stderr, str


def my_big_func():
	process('第一步')
	yield
	process('第二步')
	yield
	process('第三步')
	yield
	process('第四步')
	yield
	process('第五步')
	yield
	process('第六步')
	yield


import itertools
my_tick_funcs2 = itertools.chain(my_big_func())
for item in my_tick_funcs2:
	pass
总结

可以看到, 其实用到的并不是很奇怪, 或者很深奥的技术, 就是一些基础的知识在实践中应用的结果, 实践出真知

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在python中如何让一个函数分段执行呢? 的相关文章

随机推荐

  • LCD 驱动

    LCD的型号是 CM162 4 有U1 U2 外形尺寸 L W H mm 80 36 12 点数 mm 5 8 内藏控制器 SPLC 780 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 GND VDD VO
  • vue3+element-plus+js 对列表查询/重置条件 组件简单封装

    在写后台管理的时候会有很多列表 列表上面一般会有查询条件 对列表进行搜索查询 所以就想封装成为组件 就不需要每个页面写一堆的代码 直接循环出来进行遍历即可 1 封装子组件searchForm组件
  • 利用Bat命令批量修改文件名

    因为科研需求 需要把文件名规范统一命名 整体思路 先获得原始文件名字 带后缀 再导到excel里搞好新名字 构建好Bat的ren函数 完成修改 具体措施 1 读取原本文件名称 在相应的文件目录下 新建一个文本文件 并且打开输入 dir b
  • 移动端物理像素和设备独立像素

    https blog csdn net aiolos1111 article details 51880223 https www cnblogs com samwu p 5341056 html http www softwhy com
  • ifconfig命令详解

    在CU论坛里看到一个关于google面试的帖子 当中提到的一个面试题就是ifconfig命令的用法 所以今天就趁些机会在网上找了一些关于ifconfig的文章 转到这边来 大家一起学习 以下转自 http www photox cn IT
  • linux之date命令

    date 命令用于 显示 或 设置系统的时间或日期 格式 date 参数 日期格式 注意 date后面有一个空格 否则无法识别命令 shell对空格是很严格的 1 Linux date命令参数 日期时间格式符号 H 小时 以00 23来表示
  • x = torch.cat((x1, x2), dim=1) dim是什么意思,决定什么变量

    在这个例子中 x torch cat x1 x2 dim 1 意思是将 x1 和 x2 按照第一维拼接起来 得到新的 tensor x 变量 dim 1 决定了拼接的维度
  • re学习(29)攻防世界-CatFly(复原反汇编)

    因为这是一个 dll文件 在Linux上运行一下 找到主要函数 以及由上面三部分对应的代码部分 int64 fastcall main int a1 char a2 char a3 size t v3 rbx int16 v5 4 rsp
  • Docker安装Elasticsearch 8.x 、Kibana 8.x等

    这里我使用的是8 2 0版本 同时内容会介绍ik分词和elastic head的安装 elasticsearch java的配置 1 下载ik分词器插件 下载地址 https github com medcl elasticsearch a
  • 年轻人 vs 存款

    近日 有调查称 大概五分之一的年轻人存款在一万元以内 10万元存款是一个 坎 存款超过10万就会超过53 7 的人 年轻人 存款 两个词碰撞在一起 引来了广泛的关注和讨论 你认为年轻人存款难吗 可以从以下几个角度发表你的看法 存款 角度一
  • Redis入门之一

    设置后台进程 进入redis conf中的136行改成 yes 设置后台进程 修改bind 改成qianfeng01 改密码 找到第500行左右 requorepass 改成123456 登录的代码 查看 ps ef grep redis
  • 数据挖掘基础之数据库

    最近出现的一种数据库结构是数据仓库 1 3 2 小节 这是一种多个异种数据源在单个站点以统一的模式组织的存储 以支持管理决策 数据仓库 技术包括数据清理 数据集成和联机分析处理 OLAP OLAP 是一种分析技术 具有汇总 合并和聚集功能
  • RSA算法Java版(不要求支持大数)但实现了(dog

    RSA算法 支持大数 题目描述 C 中数据的类型与长度参考 因此 C 最大能支持的十进制是19位的整数 如果要支持更大的整数 需要实现Big Number类 RSA目前比较安全的密钥长度是2048位二进制 即是617位的十进制 因此 C 自
  • grafana 使用 Node Exporter for Prometheus Dashboard 监控服务器基础信息

    使用 Node Exporter for Prometheus Dashboard 监控服务器CPU 内存 磁盘 IO 网络 流量 温度等指标 当需要监控服务器的CPU 内存 磁盘 IO 网络 流量 温度等指标 可以使用 grafana 的
  • Eclipse 直接开发HANA UI5 ABAP等(提供完整配套软件 和jar包及操作文档)_SAP刘梦_新浪博客...

    之前写了HANA Studio 安装 ABAP UI5 插件等等 现在写下直接用Eclipse 有人说了现象 打开HANA Studio 做HANA建模 然后呢 打开个eclipse 做UI5 其实没必要 本来HAHA studio就是ec
  • Vue源码解读(六):update和patch

    Vue 的 update 是实例上的一个私有方法 主要的作用就是把 VNode 渲染成真实的 DOM 它在首次渲染和数据更新的时候被调用 在数据更新的时候会发生新 VNode 和 旧 VNode 对比 获取差异更新视图 我们常说的 diff
  • ChatGPT Plus价格太贵,可以约上三五知己一起上车体验一下,这个项目就能帮到你

    对于想体验ChatGPT PLus的小伙伴 可能觉得自己一个人一个月花费20美元 相对于人民币每月137多 确实是一个不少的开支 如果 几个人合作一个账号 这样负担就减少了 刚好 最近逛github发现刚好有一个这样的项目 项目介绍 Cha
  • is running beyond physical memory limits. Current usage: 2.0 GB of 2 GB physical memory used; 2.6 GB

    背景 执行一个kylin任务 然后报错 TaskAttempt killed because it ran on unusable nodekylin1 dtwave dev local 8041 Container released on
  • excel发给别人图片全是代码_PHP读取Excel内的图片(附代码)

    php中文网最新课程 每日17点准时技术干货分享 今天接到了一个从Excel内读取图片的需求 在网上查找了一些资料 基本实现了自己的需求 不过由于查到的一些代码比较久远 里面一些库方法已经被移除不存在了 所以不能直接移植到自己的项目里 需要
  • 在python中如何让一个函数分段执行呢?

    在python中如何让一个函数分段执行呢 原因 最新在写分针的逻辑 最开始讲一大段代码分成好几个小的函数 讲函数放进数组中 每一帧执行一个 但总是觉得这样写不够优美 今天看到其他大神的代码 记录一下思路 前提要理解generator pyt