python内部函数和比外部函数快_在这种情况下哪个是python的更好的练习?函数内部或外部函数的迭代器...

如果我提到“状态机”这个词,大多数人都会选择状态机设计。所以我想简化案例以关注这一点。

这里建议的是一个文本流,它很长或经常被带到当前阶段。

每次处理序列中的单个字符并决定下一个状态。这里有两个解决方案:

textflow = iter(text)

endFlag = False

while True:

process()

if endFlag:break那么过程方法就是这样

def process0():

for x in textflow:

do something

if condition1:

process = process1

break

elif cond2:

process = process2

break

def process1():

for x in textflow:

do something

if cond0:

process = process0

break

elif cond2:

process = process2

break

...要么

for x in text:

process(x)那么过程方法就是这样

def process0(x):

do something

if cond1:

process = process1

elif cond2:

process = process2

def process1(x):

do something

if cond0:

process = process0

elif cond2:

process = process2

....在第一种解决方案中,每个流程方法都会以自己的方式进行迭代,并结束流程直到状态发生变化。在第二步中,主循环执行迭代,并且每个时间进程都会被调用(map()可以使用,但由于每次都会更改进程,所以它不起作用)。

状态变化将如下所示:

0 1 2 1 0 2 1 0 1 2 0 1 2 0 ....或者像这样:

0 0 0 0 0 ...many 0 .. 0 1 ...many 1 ... 1 2......2 1 ..... 1更常见的情况是:

0 1 1 1 1 1 0 0 2 1 1 1 1 2 0 2 3 1 1 1 1 3 1 1 1 2 0 ....我需要一位顾问告诉我哪种解决方案更高效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值