Доооо, вы сами сможете подсчитать кол-во объектов и методов в этой строчке?Доооо, так можно на любом языке сделать, мол "у меня для этого уже давно есть функция". И тогда любая задача решается одним ее вызовом.
Доооо, вы сами сможете подсчитать кол-во объектов и методов в этой строчке?
int[] ints = (from str in Request.Cookies["integers"].Split(',') select Convert.ToInt32(str)).ToArray();
Такой должен быть подход -- цепкий и методичный, иначе код превратится в макароны по-флотски, и будет пестрить ошибками и варнингами.
однако, хотите скажу в чем говнокодство в вашем коде? наличие этой куки нужно проверять отдельно. неустановленная кука - это штатная ситуация в программе, а не исключение. она не установлена - её нужно установить. вы штатную ситуацию обрабатываете через механизм исключений. это - говнокод.
notice всего-то, господи )) возвоможно, возможно. у меня они отключены, как по дефолту. но вы правы в общем-то.
однако, хотите скажу в чем говнокодство в вашем коде? наличие этой куки нужно проверять отдельно. неустановленная кука - это штатная ситуация в программе, а не исключение. она не установлена - её нужно установить. вы штатную ситуацию обрабатываете через механизм исключений. это - говнокод.
Ты это, хомячков у себя там задрачивай. меня не надо. А то книжек начитаются про правильные подходы и давай умничать.
Кстати да. Щас мы его залошим с легкостью.
однако, хотите скажу в чем говнокодство в вашем коде? наличие этой куки нужно проверять отдельно. неустановленная кука - это штатная ситуация в программе, а не исключение. она не установлена - её нужно установить. вы штатную ситуацию обрабатываете через механизм исключений. это - говнокод.
Здрасьте пожалуйста. Это Вы сами придумали, или гдето прочитали такие рекомендации? Я ожидаю наличие куки, но имею ее отсутствие. Логично? Если бы в ПХП была полноценная поддерка исключений, то юзали б и помалкивали.
Иди отсюда мальчик, не мешай дядям.
Не дороже чем вызов функции. Учи матчасть.Прийдет к тебе толпа юзеров без куков - чо ты делать будешь? Исключения ловить - дорогое удовольствие. Хотя если в твоем питоне стек не раскручивается - то говно вопрос.
Дядя, ты шо-то загоняться начинаешь или мне кажется? Доебался до чужого кода, ожидай что так и до твоего кода точно так же доебутся.
lIntCookies = request.COOKIES["integers"]
if lIntCookies is not None:
try:
integers = map(int, lIntCookies.split(","))
except IndexError, ValueError:
# handle bad cookie
pass
Хочешь сказать, что так будет медленнее в случае отсутствия cookie?Код:lIntCookies = request.COOKIES["integers"] if lIntCookies is not None: try: integers = map(int, lIntCookies.split(",")) except IndexError, ValueError: # handle bad cookie pass
try:
integers = map(int, request.COOKIE.get("integers", None).split(","))
except ValueError:
# handle bad cookie
pass
Не дороже чем вызов функции. Учи матчасть.
До моего кода доебались необоснованно. Любые попытки сделать иначе приведут только к замедлению работы и увеличению количества кода. Или нет? Давайте только без пердежа.
Та оно вообще вылетит с не пойманным KeyError))
Лучше делать так:
Код:try: integers = map(int, request.COOKIE.get("integers", None).split(",")) except ValueError: # handle bad cookie pass
Тогда при отсутствии куки будет немного быстрее, (почти в 3 раза)
Но так как эта конструкция ест 0.00001% от общего времени, эту разницу даже измерить бенчмарками не удастся, что намекает о вреде преждевременной оптимизации)
lIntCookies = request.COOKIES.get("integers")
if lIntCookies is not None:
try:
integers = map(int, lIntCookies.split(","))
except IndexError, ValueError:
# handle bad cookie
pass
Ок. C python дела не имел, но вот исправленный код. Хочешь сказать так будет медленнее, чем через исключение?
Код:lIntCookies = request.COOKIES.get("integers") if lIntCookies is not None: try: integers = map(int, lIntCookies.split(",")) except IndexError, ValueError: # handle bad cookie pass
try:
integers = map(int, request.COOKIE.get("integers").split(","))
except ValueError, AttributeError:
# handle bad cookie
pass
В плюсах и шарпе раскрутка стека - дорогое удовольствие. Я не знаю что там в твоем питоне происходит, возможно такого понятия ваще нету и исключения не более чем профанация что б быть похожим на другие языки.
По-моему предварительная проверка на наличие ключа быстрее облажания в случае его отсутствия, не? Ессно если ваще все приходят с нужными куками - то это излишне, а если 50 на 50 - то возможно имеет смысл. Хотя уже то что ты об этом не подумал и начинаешь выделываться говорит о крайне низкой твоей ценности как программера.
Этот вариант будет медленней чем:
Код:try: integers = map(int, request.COOKIE.get("integers").split(",")) except ValueError, AttributeError: # handle bad cookie pass
Во вторых -- в твоем варианте будет 2 места с обработкой кривого куки. (в except и в else)
Предлагаешь скопипастить обработку кривой куки? О нет, это какойто php-way)
Мальчик, я ж просил не мешать
Этот вариант будет медленней чем:
Код:try: integers = map(int, request.COOKIE.get("integers").split(",")) except ValueError, AttributeError: # handle bad cookie pass
Во вторых -- в твоем варианте будет 2 места с обработкой кривого куки. (в except и в else)
Предлагаешь скопипастить обработку кривой куки? О нет, это какойто php-way)
А еще быстрее будет если вообще ловить все исключения (просто except: )
Но это не ок и не по ГОСТам
Зачем копипастить? Достаточно просто один раз посмотреть - если массив integers пустой - то значит кука кривая.
try:
integers = map(int, request.COOKIES["integers"].split(","))
except IndexError, ValueError:
# handle bad cookie
pass
try:
integers = map(int, request.COOKIE.get("integers", None).split(","))
except ValueError:
# handle bad cookie
pass
Вообще-то блока else нету и пустой cookie не попадет в блок try..except.
Кстати, ты уже изменил свой код
Код:try: integers = map(int, request.COOKIES["integers"].split(",")) except IndexError, ValueError: # handle bad cookie pass
Код:try: integers = map(int, request.COOKIE.get("integers", None).split(",")) except ValueError: # handle bad cookie pass
Дилетант? В случае с кривой кукой переменной integers вообще не будет, и тогда твой if вылетит с NameError.
Или предлагаешь свою проверку тоже завернуть в try except? Ну это высший ПХПилотаж))
Ну да, и не один раз. Навскидку ж писалось