Найти - Пользователи
Полная версия: PYthon WTF!
Начало » Флейм » PYthon WTF!
1 2 3
cleg
уже нет силы терпеть :)

WTF #1 (“ну не знаем мы про pass”)?
class SampleClass:
def __init__( self ):
return
.....
что бы это значило?

если будет интересно - могу продолжить, потому что таких “ништяков” у меня под рукой много.
можно еще расширенно писать почему это плохо. в общем предлагаю составить сборник “как не надо кодить на пайтоне”

ЗЫ или все же приведенная выше конструкция имеет смысл
slivlen
Думаю тема заслуживает дальнейшего развития =)
cleg
WTF#2, codename “женская логика”
def getState(self):
if self._isActive():
return True
elif self._isOpened():
return False
elif self._inTransaction():
return None
else:
return 0
я уже представил себе восторг вызывающего этот метод….
nobodyzzz
cleg
WTF#2, codename “женская логика”
ну это на любом языке было бы WTF =))
igor.kaist
Вчера писал код.. Не поверите, без этого НЕ ВСЕГДА работало…
try:
from repr import repr as rp
except:
rp=repr
....
# а дальше такое выражение есть
try:
t=chr(i)
except:
t='\x%02i'%(i)
Кто то будет потом смеятся, но о том как побороть глюки питона на symbian буду знать только я одни :-P
:
cleg
пустой except: - плохо безотносительно платформы.
про то почему это плохо - я могу писть уже стихи :)

Люди!!! Пишите всегда какую ошибку ловите, или на крайняк
except Exception:
bw
Не согласен.
session.begin()
try:
1/0
except:
session.rollback()
log.err()
else:
session.commit()
session.close()
Это исключительная ситуация, я специально ничего не ловлю. Собственно потому это и исключения. просто подстраховываюсь. Предупреждаю падение всего приложения/сервера, которое может быть вызвано неизвестной причиной. Если except и final расставить грамотно, то не исключено что сервер продолжит нормально работать и дальше (хотя ситуация потребует изучения, в чем сильно поможет протокол). В данном примере я завершаю транзакцию (SQLAlchemy), протоколирую ошибку (Twisted) и продолжаю работать дальше.

..bw
igor.kaist
Угумс, в моем то случае кто знает что можно ожидать :)
proDiva
cleg, что еще женская логика?)) я не против, это и есть мой “стиль” написания, можете убедиться в этом, накопав здесь где-то код моей первой программы на питоне))))
на самом деле это я сейчас понимаю, что это все не рационально и даже бессмысленно…. но начинающим это не понятно… поэтому считаю, нужно расписывать причины, по которым какой-либо код считается не правильным.
cleg
ок. тогда вернемся к началам и прокомментируем :)
WTF#1
__init__() не должен ничего возвращать, если он вернет что-то кроме None, то возникнет страшный и злой эксепшн. в данном случае куда вменяемее было бы написать
class SampleClass:
def __init__( self ):
pass
а еще лучше - тупо выкинуть этот инит за безсмысленностью

WTF#2
ну тут все просто, хотя пайтон и динамический, но злоупотрелять этим не стоит :) если надо возвращать N значений, лучше сразу использовать int и все. потому что в том виде что есть, надо сначала разбираться с типом возвращенного значения, а потом уже с самим значением, что сделает обработку результатов возврата ентривиальной.

бонус: почему же все-таки не стоит писать except без ничего “на всякий случай”.
это нужно что бы KeyboardInterrupt мог все-таки отработать, иначе получится “бессмертная” программа. и плюс логика программы станет прозрачнее и понятнее, если все таки написать какую подлянку вы ждете :)
а except Exception - таки отлично отловит все “сбойные” ситуации.

ЗЫ “женская логика” - внегендерное понятие, свойственная и многим мужчинам. является просто устоявшимся выражением и не носит целью дискриминацию по половому признаку.
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