Найти - Пользователи
Полная версия: как перейти к определённому участку кода?
Начало » Python для новичков » как перейти к определённому участку кода?
1 2 3
shiza
Ну, когда струткура сложная и много всего; чем тащить наверх через все эти колдобины флаг (тут самое сложное - не потерять его случайно :) ), проще бросить экспешн и ловить его наверху.
bw
Или вынести циклы в метод, но чаще я использую флаг. Не красиво, правда, получается, но как иначе решить такую задачу, пока, не думал.

..bw
Ferroman
shiza
Хм. А можно пример? Просто я что-то не совсем себе представляю как это сделать. Может не очень хорошо знаю механизм исключений…
nobodyzzz
try:
for i in range(1, 10):
for j in range(1, 10):
for k in range(1, 10):
print i, j, k
if k == 6:
raise "goto =)"
finally:
print "Yep!"
ну например так=)
Ferroman
Мда… Что-то я не догадался что так можно сделать.
cybergrind
ацтой решение. т.е. оно конечно рабочее, но логика не та…

надо исходить из того, где нас должно выбрасывать - если это должен быть внутренний цикл, делаем просто return того, что нам надо вернуть

если выбрасывать должно из любого уровня… то я бы делал чтото вроде:

def loop1(a, b):
ret = 0
for i in a:
if i < b:
ret = 1
break
return ret

def loop2(a, b, c):
ret = 0
for i in c:
ret = loop1(a, b)
if i < b or ret:
ret = 1
break
return ret
выглядит трохец коряво, и написано больше, но с т.з. ООП вроде как получше чем гото. а выбрасывать по эксепшну имхо стоит только в том случае, когда это действительно ошибка…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB