LINUX.ORG.RU

python goto

 


0

2

Есть ли в питон аналог goto? Что бы скажем делать нечто подобное

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

    label1:
        ...
    label2:
        ...
} 

Ответ на: комментарий от CaveRat

Давай, расскажи мне, зачем нужен goto

с ним говнокод можно писать без усилий. Просто вставляй почаще goto, желательно прыгая между контекстами (не знаю как в питоне, а вот в C/C++ так делают 95% говнокодеров).

emulek
()
Ответ на: комментарий от anonymous

еще в 60-х доказали, что гото не нужен и вреден.

Ты идиот. Иди, читай Кнута.

можно цитатку? А то что-то не припоминаю...

emulek
()
Ответ на: комментарий от CaveRat

AFAIK Гвидо потому и НЕ сделал goto, что-бы говнокодеры пейсали поменьше говнокода.

IMHO goto это пережиток кривых и тупых компиляторов 80х годов, которые не умели оптимизировать, и если ты в коде скажем сделал флажок для выхода, то компилятор этот флажок не выкинет. А если ты сделал ещё одну функцию, то компилятор её заинлайтить будет не в состоянии. Даже если она юзается всего 1 раз, просто потому, что с ней выделение/освобождение ресурса было-бы рядом.

Ну и потом не было тогда альтернативы PureC, что-бы отдать освобождение компилятору. А сейчас ты можешь юзать тот же C++, и освобождать ресурсы в деструкторе. Или даже более мощные ЯП, которые даже деструкторов не просят писать, сами справляются GC например.

emulek
()
Ответ на: комментарий от emulek

Капитан, ты снова сделал это! Ты снова спас наш город!

Тащемта, по треду за goto высказывалось всего 1,5 анона и srst, который, судя по его тредам, принимает упорин в просто окололетальных дозах.

CaveRat ★★
()
Ответ на: комментарий от emulek

Ты некомпетентная свинья, баття.

Расскажи, некомпетентная свинья, каким образом эффективно и адекватно описать большой FSM без goto.

switch - неадекватно, посколько вводит лишние сущности.

anonymous
()
Ответ на: комментарий от CaveRat

А еще, сучка ты грязная, за goto высказались сотни разработчиков ядра Linux, за goto высказался Дональд Кнут. Но ведь ты, сучка, где-то услышала, что «goto это очень плохо и страшно, ай-ай-ай», и теперь, как шавка, будешь эту чушь везде бездумно повторять.

anonymous
()
Ответ на: комментарий от anonymous

Если кто-то настолько неосилятор, что не может кодить без goto - то не следует ему заниматься разработкой ядер. Пусть лучше кодит всякий ъынтырпрайз на жабе.

Lavos ★★★★★
()
Ответ на: комментарий от CaveRat

Тащемта, по треду за goto высказывалось всего 1,5 анона и srst, который, судя по его тредам, принимает упорин в просто окололетальных дозах.

Увы, IRL этого многие *** не понимают. А код — пишут. Такие дела...

PS: ты когда-нить пробовал поддерживать лапшу из goto? Попробуй, поймёшь откуда такая НЕНАВИСТЬ.

emulek
()
Ответ на: комментарий от anonymous

Ты некомпетентная свинья, баття.

меня не волнует мнение упороых наркоманов, которые даже бояться подписываться под своими неграмотными и тупыми высерами.

emulek
()
Ответ на: комментарий от emulek

Ты сын проститутки, баття. Все тут давно поняли, что ты пиздобол, который не знает вообще ни хуя. Пожалуйста, подохни уже наконец.

anonymous
()
Ответ на: комментарий от Lavos

Иди, вонючий выблядок, и перепиши ядро без goto. Слабо, пизданутая ты мразь? Тогда затнись и не живи.

anonymous
()
Ответ на: комментарий от anonymous

А еще, сучка ты грязная, за goto высказались сотни разработчиков ядра Linux

придурок, goto это слишком мощный и опасный инструмент. Да, в 80х он был часто нужен. Сейчас изредка тоже нужен (раз в 1000 срок, не чаще). Никто и не спорит с этим.

за goto высказался Дональд Кнут.

ещё бы. Как в MIX'е без goto??? Ты точно упорот.

Но ведь ты, сучка, где-то услышала, что «goto это очень плохо и страшно, ай-ай-ай»

нет. Это ты услышала от старших, которые давно спились, и последнюю свою строчку кода написали 20 лет назад.

emulek
()
Ответ на: комментарий от anonymous

ты упоротая истеричка, которая даже не владеет русским литературным языком. Твоё место на параше, а не здесь.

И да, если ты не понял, то мы не просто goto обсуждаем, а goto в контексте python'а. При чём тут ядро? Белены опять объелся? Поблюй лучше, если синьку неправильную завезли.

emulek
()
Ответ на: комментарий от anonymous

В этом ITT треде байтослесари сознаются, что с самого рождения опускаются на дно чана с говном и не покидают его до конца жизни. Любые формализмы, логические системы, концепции, идеи, правила проектирования, да и просто хорошего тона, чувство вкуса — все это для байтослесаря чуждо, он пытается убедить себя, что всего этого не существует в реальном мире.

Лаба1, обертки над обертками, вот я жизнь повидал, у нас в армейке/на зоне и не такое было, а ты теоретик лаборант говна не нюхавший, в реальной жизни все иначе, вот у меня на заводе кудах-тах-тах! — кричит он, наворачивая очередной черпак дерьма, жадно причмокивая.

anonymous
()
Ответ на: комментарий от emulek

Ты невменяемая блядь. Представь себе adventure на Питоне. Язык не важен, вообще. Представил? Без goto - говно. С goto - просто и красиво.

anonymous
()
Ответ на: комментарий от anonymous

О ужас. Вот уж от тебя я этого не ожидал. В первом случае у тебя классический аргумент про миллионы мух — то, что goto любят бородатые зашоренные сибляди, еще не делает его чем-то хорошим. Во втором случае — апелляция к авторитету. Мнение авторитета само по себе мало что значит (если уж на то пошло, как быть с Дейкстрой?), вдобавок, зная взаимооотношения Кнута и религии (по определению он поехавший, несмотря на все заслуги), к его мнению вообще нужно относиться с недоверием.

anonymous
()

Да, аналог есть. Это - вызов функций. Вместо label создаются функции, впереди их вызова, после, в IF они вызываются без аргументов. То, что вы привели - это по сути код на C. Может быть, вам стоит посмотреть на Cython? :)

menangen ★★★★★
()
Ответ на: комментарий от anonymous

Кнут высказал конкретные аргументы, которые мне лень метать перд свиньями. Я дал ссылку на его работу, читай, понимай. Доказательство того, что goto семантически наиболее близко к концепции перехода между состояниями в fsm - тривиально. Остальные подходы неизбежно будут сраным быдлокодом и boilerplate, поскольку вводят лишние сущности, не связанные напрямую с абстракцией fsm.

Про ядро тоже все тривиально, я предложил недоумкам, воняющим против goto, доказать их ничтожную, скотскую точку зрения самым убедительным способом - практикой. Взять и переписать то, что сделано якобы «плохо», и доказать, что получилось лучше. Слабо? Свободны, сосунки, вы обосрались обосновать свою безгнадежно невменяемую позицию.

anonymous
()
Ответ на: комментарий от anonymous

Кнут высказал конкретные аргументы, которые мне лень метать перд свиньями.

ок, защитано.

Про ядро тоже все тривиально, я предложил недоумкам, воняющим против goto, доказать их ничтожную, скотскую точку зрения самым убедительным способом - практикой. Взять и переписать то, что сделано якобы «плохо», и доказать, что получилось лучше. Слабо? Свободны, сосунки, вы обосрались обосновать свою безгнадежно невменяемую позицию.

а если я считаю, что Египетские Пирамиды сегодня можно построить проще и лучше, причём без использования Over9000 рабов? Тоже скажешь: «спервадобейся»?

emulek
()
Ответ на: комментарий от CaveRat

для него Дейкстра не авторитет. Забей, оно неизлечимо.

emulek
()

Есть ли в питон аналог goto? Что бы скажем делать нечто подобное

Зачем так делать?

yvv ★★☆
()
Ответ на: комментарий от CaveRat

Из всего перечня нет только redo. А какие у него есть юзкейсы?

бывало в брутфорсе использовал.

Deleted
()
Ответ на: комментарий от CaveRat

Дийкстра - известный тролль. Кнут для меня более авторитетный.

anonymous
()
28 марта 2015 г.
Ответ на: комментарий от Virtuos86

Некромодерация, очевидно. После вот этого стучка.

Как и зачем это откопал жужу конечно неясно, но что возьмёшь со школьника-аутиста.

aedeph_ ★★
()
Последнее исправление: aedeph_ (всего исправлений: 1)
Ответ на: комментарий от SadBoy

в ядре, например, широко используется. кстати, вместе с ООП

anonymous
()
19 ноября 2015 г.
Ответ на: комментарий от Deleted

В интернете кто-то настолько неправ, что ты решил раскопать некропост?

Нет. Моими первыми ЯП были BASIC и asm. Поэтому к goto отношусь нормально.
Тут вместо того, чтобы комментировать большой кусок кода, захотел обойти его goto, но наткнулся на этот топик. Печаль.
Засунул кусок кода в функцию, и не стал её вызывать. Мне повезло, что для этого не надо делать кучу отступов.

pacify ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.