Python 板


LINE

大家好,因为工作上的需求写了一个目标系统为Windows的script, 程式码简化如下: def main(): func1() func2() # func2会让电脑重新开机 func3() ... if __name__ == '__main__': main() 问题出在func2执行完毕後会使电脑重新开机而使script执行中断, 而我希望重开完成後下一次执行时可以跳过func1跟func2,直接从func3处开始。 目前的做法是修改main(),引入一个新变数var和函式read_var, 并在重新开机以前建立一个档案写入数值: def main() # 新增一个var变数, # 并使用read_var读取存在档案中的值指定给var var = read_var() if var == '0': func1() func2() # func2经修改後会在重开机前将'1'写入档案中 if var == '1': func3() ... 但这样写我认为不直观,未来要改变执行顺序时也不好维护, 想请教各位是否有建议可以提供? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.200.78.60 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1716955075.A.2A7.html
1F:推 avonasac0800: var变数改成bool型态的has_been_rebooted就很直观 05/29 14:27
2F:→ avonasac0800: 啦,而且你不管多不多这个判断,未来改变执行顺序 05/29 14:27
3F:→ avonasac0800: 的工都一样,不会因为没这个判断就比较少呀? 05/29 14:27
4F:推 tzouandy2818: 你觉得这样太乱 可以改在func1跟2里判断 重开过就直 05/29 14:53
5F:→ tzouandy2818: 接early return 05/29 14:53
6F:→ Rollnmeow: 听起来在每个func内各自做判断然後early return, 05/29 16:42
7F:→ Rollnmeow: 比较符合我现在的需求。 05/29 16:42
8F:→ Rollnmeow: 实际的程式码有10个以上的func,还需要重开4次, 05/29 16:42
9F:→ Rollnmeow: 若考虑到保留调换执行顺序的弹性,这样比较好改 05/29 16:42
10F:→ Rollnmeow: 那如果要各自判断的话,是不是用装饰器比较好? 05/29 16:43
11F:→ lycantrope: 有没有用装饰器无跟好不好无关... 05/29 16:46
12F:→ mantour: 有没有可能某个function前面做过一次後来又要做一次 05/29 17:19
13F:→ mantour: 如果用一个list存执行步骤, 然後读一个N进来决定要从第几 05/29 17:20
14F:→ mantour: 步继续跑? 这样要改顺序也很容易 05/29 17:20
15F:→ mikapauli: 直接写排程 05/29 18:31
16F:推 mpk: 重开机前先存一些资料到database或是先连到某个网页存资料 05/30 15:57
17F:→ anhi: 若func各自判断的逻辑都一样,可以写个装饰器来处理就好 06/01 01:06
18F:推 ddavid: 状态机。每个 function 都在开头加上只有进入特定状态才执 06/03 18:09
19F:→ ddavid: 行的条件,并且执行完会让状态改变,应该可以比较容易满足 06/03 18:10
20F:→ ddavid: 你随时可能变换顺序设定的需求?只要改头尾的状态判定与改 06/03 18:10
21F:→ ddavid: 变就好。 06/03 18:10
22F:推 bills1987: fun2完成後写入档案ready > fun3.txt , 最开头发现有这 06/14 20:49
23F:→ bills1987: 档案就goto, 执行完成就砍掉 06/14 20:49







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP