第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python中有標(biāo)簽/ goto嗎?

Python中有標(biāo)簽/ goto嗎?

阿晨1998 2019-07-30 15:15:34
Python中有標(biāo)簽/ goto嗎?gotoPython中是否有一個或任何等價物能夠跳轉(zhuǎn)到特定的代碼行?
查看完整描述

3 回答

?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗 獲得超8個贊

不,Python不支持標(biāo)簽和goto,如果這是您所追求的。它是一種(高度)結(jié)構(gòu)化的編程語言。


查看完整回答
反對 回復(fù) 2019-07-30
?
BIG陽

TA貢獻(xiàn)1859條經(jīng)驗 獲得超6個贊

Python為您提供了使用第一類函數(shù)執(zhí)行g(shù)oto所能完成的一些功能。例如:

void somefunc(int a){
    if (a == 1)
        goto label1;
    if (a == 2)
        goto label2;

    label1:
        ...
    label2:
        ...}

可以像這樣在python中完成:

def func1():
    ...def func2():
    ...funcmap = {1 : func1, 2 : func2}def somefunc(a):
    funcmap[a]()  #Ugly!  But it works.

當(dāng)然,這不是替代goto的最佳方式。但是如果不確切地知道你要對goto做什么,很難給出具體的建議。

ascobol

最好的辦法是將其包含在函數(shù)中或使用異常。對于功能:

def loopfunc():
    while 1:
        while 1:
            if condition:
                return

對于例外:

try:
    while 1:
        while 1:
            raise BreakoutException #Not a real exception, invent your ownexcept BreakoutException:
    pass

如果你來自另一種編程語言,使用異常來做這樣的事情可能會有點尷尬。但我認(rèn)為,如果您不喜歡使用異常,Python就不適合您。:-)


查看完整回答
反對 回復(fù) 2019-07-30
?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗 獲得超3個贊

我最近寫了一個函數(shù)裝飾器goto在Python 中啟用,就像這樣:

from goto import with_goto@with_gotodef range(start, stop):
    i = start
    result = []

    label .begin    if i == stop:
        goto .end

    result.append(i)
    i += 1
    goto .begin

    label .end    return result

我不確定為什么人們會這樣做。那就是說,我對此并不太認(rèn)真。但是我想指出這種元編程在Python中是可行的,至少在CPython和PyPy中是這樣,而且不僅像其他人那樣濫用調(diào)試器API 。你必須弄亂字節(jié)碼。


查看完整回答
反對 回復(fù) 2019-07-30
  • 3 回答
  • 0 關(guān)注
  • 1937 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號