Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 20, 2008 15:45:51

cleg
От:
Зарегистрирован: 2006-11-09
Сообщения: 153
Репутация: +  0  -
Профиль   Отправить e-mail  

PYthon WTF!

уже нет силы терпеть :)

WTF #1 (“ну не знаем мы про pass”)?

class SampleClass:
def __init__( self ):
return
.....
что бы это значило?

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

ЗЫ или все же приведенная выше конструкция имеет смысл



Отредактировано (Окт. 20, 2008 16:09:54)

Офлайн

#2 Окт. 20, 2008 15:58:42

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

PYthon WTF!

Думаю тема заслуживает дальнейшего развития =)



Офлайн

#3 Окт. 20, 2008 16:09:31

cleg
От:
Зарегистрирован: 2006-11-09
Сообщения: 153
Репутация: +  0  -
Профиль   Отправить e-mail  

PYthon WTF!

WTF#2, codename “женская логика”

def getState(self):
if self._isActive():
return True
elif self._isOpened():
return False
elif self._inTransaction():
return None
else:
return 0
я уже представил себе восторг вызывающего этот метод….



Офлайн

#4 Окт. 20, 2008 17:50:06

nobodyzzz
От:
Зарегистрирован: 2007-06-12
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

PYthon WTF!

cleg
WTF#2, codename “женская логика”
ну это на любом языке было бы WTF =))



Офлайн

#5 Окт. 20, 2008 20:54:21

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

PYthon WTF!

Вчера писал код.. Не поверите, без этого НЕ ВСЕГДА работало…

try:
from repr import repr as rp
except:
rp=repr
....
# а дальше такое выражение есть
try:
t=chr(i)
except:
t='\x%02i'%(i)
Кто то будет потом смеятся, но о том как побороть глюки питона на symbian буду знать только я одни :-P
:



Офлайн

#6 Окт. 20, 2008 23:59:32

cleg
От:
Зарегистрирован: 2006-11-09
Сообщения: 153
Репутация: +  0  -
Профиль   Отправить e-mail  

PYthon WTF!

пустой except: - плохо безотносительно платформы.
про то почему это плохо - я могу писть уже стихи :)

Люди!!! Пишите всегда какую ошибку ловите, или на крайняк

except Exception:



Отредактировано (Окт. 21, 2008 12:01:36)

Офлайн

#7 Окт. 21, 2008 00:43:56

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

PYthon WTF!

Не согласен.

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

..bw



Офлайн

#8 Окт. 21, 2008 07:33:43

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

PYthon WTF!

Угумс, в моем то случае кто знает что можно ожидать :)



Офлайн

#9 Окт. 21, 2008 11:55:33

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

PYthon WTF!

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



Офлайн

#10 Окт. 21, 2008 12:13:55

cleg
От:
Зарегистрирован: 2006-11-09
Сообщения: 153
Репутация: +  0  -
Профиль   Отправить e-mail  

PYthon WTF!

ок. тогда вернемся к началам и прокомментируем :)
WTF#1
__init__() не должен ничего возвращать, если он вернет что-то кроме None, то возникнет страшный и злой эксепшн. в данном случае куда вменяемее было бы написать

class SampleClass:
def __init__( self ):
pass
а еще лучше - тупо выкинуть этот инит за безсмысленностью

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

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

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



Отредактировано (Окт. 21, 2008 12:32:28)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version