Python学习-goto语句 Learn for python-goto statement

in #cn6 years ago (edited)

​ 前面有提到,我开发了一个BTS自动交易的程序,是用Python语言完成的。以前没有使用过Python语言,也是边学边用。相对来说,我对C#语言比较熟悉一些,在使用C#语言时经常用它的一个偏门语法:goto语句。goto语句大家应该都比较了解了,就是跳转语句,汇编语言里面比较常见。现代软件工程中往往不推荐使用goto语句,因为代码逻辑复杂,出问题不好定位。

​ 但是我发现在一些操作类的过程性代码或者状态机代码中,goto语句要比if...else...语句好用多了,看起来也更容易理解一些。我的使用习惯是主场景使用Action1、Action2...Action-n等主要操作序列,对于分支场景,就简单的使用goto语句跳转到别处,感觉很舒服、很简单。

​ 只是Python语言原生是不支持goto语句的,我找了一个库,试用了一下,感觉还很爽,贴出来给大家分享:

from goto import with_goto

@with_goto
def Test():
    label .start
    print('start...')
    label .step1
    print('step1')
    label .step2
    print('step2')
    goto .start

关键点:

  • 安装goto模块,可以pip3 install goto-statement
    可参考:https://github.com/snoack/python-goto
  • 导入goto模块,如示例代码所示
  • 使用@with_goto修饰为函数整个goto能力
  • label .xxx,增加标签,标签需要以“.”开头
  • goto .xxx,跳转到指定的标签处
Sort:  

I like and enjoyed your post ! Keep publishing interesting and informative articles.
Keep steeming. Cheers !!!

Coin Marketplace

STEEM 0.25
TRX 0.14
JST 0.033
BTC 51768.96
ETH 3109.10
USDT 1.00
SBD 4.20