Форум сайта python.su
Никогда, никогда не пишите так.
Офлайн
j2aээээ… а по-развернутее? Именование и форматирование конечно ужасны, но больше ничего страшного не вижу…
Никогда, никогда не пишите так.
Офлайн
из 44 строк там лишних 35.
первые 20 – это s.replace('*', ‘%’).replace('?', ‘_’), с 22 по 33 – это if pattern is None
Офлайн
j2aНу да :) я первый раз невнимательно посмотрел. возможно там предполагались более навороченные обработки в методах, хотя метод LikeSyntaxPrepare конечно все равно полный абырваг. Ну и вообще - в воздухе густо пахло Java ;)
из 44 строк там лишних 35.
первые 20 – это s.replace('*', ‘%’).replace('?', ‘_’), с 22 по 33 – это if pattern is None
Офлайн
да я уже запарился рефакторить типа такого (код as is, орфография оригинала):
def __call__(self,pattern):
#
Query=self.prepare_query(pattern)
print Query
try:
Result=self.do_query(Query)
except:
print "Error is wrong!"
raise
return True
Офлайн
Да, многие еще не дочитали до библиотеки logging, и не совсем понимают как использовать и для чего нужны исключения.
Офлайн
Само существование функции здорово угнетает:
def IsThisPolis(self,pattern=None):
if pattern==None:
return False
else:
return True
def doQueryString(self,pattern=None):
if (self.CheckPolis(pattern)==False)or(pattern==None):
raise ValueError("I need not null object 'polis' !")
assert pattern
Офлайн
Знакомо, к моему стыду :). Я вот никак себя приучить не могу к assert'ам. А надо бы.
Офлайн
ну положим, там где ошибка значений – в тему ValueError/TypeError. AssertionError в этом случае не в кассу. И даже в этом случае у ассерта в предлагаемом варианте есть мега-плохая штука: он не объясняет причину. Т.е. сообщение об ошибке будет что-то типа AssertionError<пусто>. Если уж использовать ассерты (я их использую для логической проверки случаев которые в нормальном ходе выполнения программы не должны возникать), то
assert condition, description
assert pattern is not None, "search pattern usually shouldn't be None"
Отредактировано (Март 2, 2009 17:33:40)
Офлайн
Офлайн