Найти - Пользователи
Полная версия: Элегантно сделать
Начало » Python для новичков » Элегантно сделать
1 2 3
asilyator
Какое исключение - в принципе не важно. Мы читаем кэш файл, если файл не найден - вызывается функция, заполняющая его данными, и читаем его еще раз.
doza_and
Не буду навязывать стиль, но я в таких прямолинейных случаях просто if использую.
asilyator
Меня интересовал абстрактный случай, но вот конкретный:
    try:
List = pickle.load(file(filename))
except IOError:
refresh()
List = pickle.load(file(filename))
Получается копипаст кода.
doza_and
if not os.path.exist(name):
refresh()
List = pickle.load(file(filename))
общий try не помешает конечно
asilyator
А как это сделать в абстрактном случае, если узнать, будет ли ошибка, можно, только выполнив выражение?
FishHook
asilyator
Меня интересовал абстрактный случай, но вот конкретный:
    try:
List = pickle.load(file(filename))
except IOError:
refresh()
List = pickle.load(file(filename))
Получается копипаст кода.
дурь какая то если честно
Почему нельзя сразу вызов функции обернуть в цикл?
o7412369815963
что-б не было копипаста - выносите в ф-ию, для этого они и созданы.
к goto так же относится - если хотите goto значит нужно использовать ф-ии…
bw
:-)

while True:
try:
List = pickle.load(file(filename))
except IOError:
refresh()
else:
break
А если серьёзно, то за такой код нужно кастрировать.

..bw
asilyator
bw
А если серьёзно, то за такой код нужно кастрировать.
:) А за что так?
Soteric
Вызовите метод два раза как и собирались, никто от этого не пострадает. А вот эти “элегантные” нагромождения с while else break сразу вызовут вопросы и недоумение у того, кто будет читать код. KISS.
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