1. Python / Говнокод #12317

    −96

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    def run(self):
            count = 0
    
            while True:
                if count < 5:
                    self.saveUsers(self.queue.get())
                    count += 5
                else:
                    GlobalConfig().setUsers(self.db.selectUsers())
                    count = 0
    
            self.db.close()

    bool не нужен!

    Запостил: voice, 19 Декабря 2012

    Комментарии (78) RSS

    • А из цикла он выйдет по исключению?

      P.S. А бул и правда не нужен:
      def run(self):
          count = 0
          while True:
              self.saveUsers(self.queue.get())
              GlobalConfig().setUsers(self.db.selectUsers())
          self.db.close()
      Ответить
      • у потока есть свойство daemon. Если оно True, тогда поток убьётся при завершении скрипта.
        Правда, self.db.close не выполнится ни при каком раскладе.

        А если queue - это синхронная queue, умеющая приостанавливать поток, то и базу особо насиловать не будет...
        Ответить
    • есть народ которые так любит писать. не знаю почему.

      то как оно сверху оно конечно сафсем гавно, но знаю пару челов которые такое спокойно напишут с switch/case'ом и count'ом прыгающим между 0 и 1. если их спросить "ы?" как правило отвечают "а вдруг еще что-то надо будет в цикл добавить."

      в общем, я думаю что это уже второе поколение программистов растет которое не умеет пользоватся машинами состояний. позже они их сами изобретают - и код вырождается в нечто подобное вышеописанному.
      Ответить
    • оригинально
      Ответить
    • def run(self) для начала не нужен, конструктор thread принимает замыкание, макаки ёбаные.
      Ответить
      • Если есть данные, ассоциируемые с потоком, то имеет смысл отнаследоваться от Thread() и хранить их в полях объекта, как сделал автор кода. Так аккуратнее.
        Для нелюбителей есть возможность передать аргументы телу потока.
        Ответить
        • А зачем?

          Для параметров есть дополнительные параметры args и kwargs. Наследование Thread - явоидное говно, связанное с тем, что java cannot into closures. В фитоне не нужно. Назовите хоть одну причину, зачем это нужно.
          Ответить
          • Ну это скорее вопрос вкуса.
            Навскидку: в нескольких точках программы создаем однотипные потоки. Можно вынести код создания потока в функцию-фабрику, а можно отнаследоваться и задать параметры потока (например тот-же daemon) в конструкторе.
            Или если поток должен работать со слабой ссылкой на внешние данные, то при передаче параметров эту самую ссылку придется создавать вызывающему, а при наследовании эти данные можно бросить как есть конструктору: он создаст слабую ссылку, сохранит в поле, а его собственная сильная ссылка исчезнет, когда конструктор завершит работу.

            Вообще я применяю оба подхода: стандартный Thread для разовых действий, наследование для ситуаций с несколькими однотипными потоками-worker'ами.
            Ответить
            • Runnable.
              Ответить
            • По первому: можно и с функциями так сделать, а параметры передавать через, внезапно, параметры. Со слабыми ссылками никогда не встречался.

              Кстати, можно было бы писать
              Thread(target=labmda: func(a, b, c=d))

              если бы в питоне лямбды нормально работали.
              Ответить
              • Я имел ввиду параметры конструктора и свойства объекта Thread. Тe же Thread.name, Thread.daemon. Не уверен что их можно изменять после вызова Thread.start(), а если изменять вручную после создания экземпляра Thread, то приходим к описанной мной ситуации: фабрика или наследование.
                Ответить
          • > java cannot into closures
            Да ну как это?
            http://rghost.ru/45060024.view
            Ответить
            • О_о
              Это в версии 1.8?
              Ответить
              • Это сахар IntelliJ
                Ответить
                • (x) -> { System.out.println(x); }
                  превращает в
                  new some_shit {
                      @override
                      void other_shit(int x) {
                          System.out.println(x);
                      }
                  }
                  ?
                  Ответить
                  • Да, если в анонимном классе только один метод. Что, таки православный STL/Boost нэйминг проник в твой джавокутишный мозг так глубоко, что стал употребляться в жабокоде?
                    Ответить
                    • > стал употребляяться в жабокоде
                      Упс, спалился. Вредно писать в одно окно код, а в другое говнокод. Языки начинают влиять друг на друга.
                      Ответить
                    • > проник в твой джавокутишный мозг
                      я это тоже подметил, но не стал спугивать клиента
                      один уже по уши в крестах, другой измазался в православном стиле
                      так победим!
                      Ответить
                      • То, что все люди - латентные крестобляди - не означает, что это нормально, может это как раз древние вредные проявления, с которыми надо бороться.
                        Ответить
                        • все крестобляди давно занимаются этим современно, в мягких чистых постелях, безопасно, и ни в каких изощренных фантазиях себе не отказывают

                          и только некоторые сатанисты прелюдно порицают, но сами продолжают брезгливо этим заниматься на скотном дворе, в говне, с гандонами из свиной кишки, и походу, гордятся этим
                          Ответить
                      • > так победим!
                        крестоносцы начали крестовый поход во имя веры
                        они несут её в массы
                        Ответить
                • Так оно еще и не кроссидешно?

                  Ололо жавамакаки, им язык нормально писать не дает, так они придумывают свои define с замыканием на одну ide.
                  Ответить
                  • >они придумывают свои define с замыканием на одну ide.
                    Это фолдинг обычный.

                    > им язык нормально писать не дает
                    Иди лучше продолжай портировать на 3-ю версию.
                    Ответить
                    • >Это фолдинг обычный.
                      Похуй, что это, главное, что работает в одной IDE.

                      >Иди лучше продолжай портировать на 3-ю версию.
                      Да у тебя же C#.

                      А мне лично ничего своего портировать не надо. Тут у других проблемы есть, вроде того, что в XBMC стоит питон 2,6 и попробуй этих макак уговори хотя бы 2,7 поставить, чтобы json искаропки был.
                      Ответить
                      • >Похуй, что это, главное, что работает в одной IDE.
                        С чего ты взял?
                        В NetBeans тоже похожее запилили. В эклипсе плагин есть.

                        >Да у тебя же C#.
                        У меня обратно совместимая Java. Именно шарперам и надо больше остальных думать о установке новых .net.
                        Ответить
                      • Ты настолько тупой, что не понимаешь элементарной шутки.
                        Фолдинг можно настроить в любой среде, даже в notepad++.
                        http://lambda4jdt.googlecode.com/files/screen2b.gif
                        Ответить
                        • показать все, что скрыто>Фолдинг можно настроить в любой среде
                          Пофиксил. Трахайся дальше.
                          ----
                          А, так фолдинг - это просто скрытие "нинужного" текста? Жавамакаки, по костыльности вы уделали, все, что я до этого знал.

                          Если тебе посреди квартиры насрать, то ты газеткой накроешь и будешь вокруг ходить? Ололо, ололо.
                          Ответить
                          • Ебать ты ишак. Только что рассказывал про "работает в одной IDE".
                            >А, так фолдинг - это просто скрытие "нинужного" текста
                            Омг. На говнокоде только что было совершено эпохальное открытие!

                            А когда пифон из одной строчки тебе сгенерирует тормозную кучу нативного говнокода, ты тоже туда лезешь дизасмом и смотришь?
                            Ответить
                            • Значит, я твое бульканье на энгруском не понял. Какая трагедия.

                              Любая макака должна понимать, что у языков есть сфера применения и работу с бинарными данными фитону лучше не доверять. Однако, пока в жабе думали, что поддержка foreach, появившегося в 2004 году, нинужна, фитон с 2004 развился очень и очень сильно и вообще стал похожим на язык, а не на нагромождение дико текущих абстракций, которые без знания деталей реализации невозможно понять. А вот жавоиды до сих пор в стазисе сидят.
                              Ответить
                              • Какое вообще отношение foreach и 2004 год имеют к замыканиям?

                                >Любая макака должна понимать, что у языков есть сфера применения

                                Этот аргумент применяется обычно когда маячит слив в споре.
                                И в данном случае действительно бессмысленно сравнивать динамику со статикой. Думаю ты и сам это понимаешь.
                                Ответить
                                • Лол, слив по фичам языка маячит как раз вам.

                                  Где замыкания?
                                  Где лямбды?
                                  Где литералы для хеш-массивов?
                                  Классы - не first class object.
                                  Кое-кто до сих пор принципиально не поддерживает foreach, появившийся в 2004.
                                  Где хеш-аргументы?
                                  Где switch с любым хешируемым типом (о да, string захуярили в 1,7, говоришь? когда это было)?
                                  Где properties? Геттеры/сеттеры генерировать не заебешься?
                                  new LoggerHandlerFabricFabric.getFabric().fabric().addLogListener(new ListenerFabricFabric.getFabric().fabric())

                                  >И в данном случае действительно бессмысленно сравнивать динамику со статикой. Думаю ты и сам это понимаешь.
                                  Отлично, половина из вышенаписаного есть в C#.
                                  Ответить
                                  • ололо в сишке вообще ничего нет даже сборщика мусора язык говно только дураки на нём пишут трололо

                                    Когда уже из питона GIL выпилят?
                                    Ответить
                                    • На сишные модули гил не распространяется.

                                      Уже достигли максимального отступа?
                                      Ответить
                                      • > На сишные модули гил не распространяется.
                                        Чтобы распараллелить питоний код просто перепишите его на си.
                                        Ответить
                                        • >Чтобы распараллелить питоний код просто перепишите его на си.
                                          Пардон, а чего ты хочешь от динамического языка? Скорости? Питоний код тормозит так, что параллелизацией не всегда спасешься. И да, проблема есть, но мне лично не мешает - я на нем хайлоад не пишу. Для хелловорлда по всякому лучше явы.
                                          Ответить
                                  • >Где замыкания?
                                    >Где лямбды?
                                    С 96-го года. Называется anonymous class.

                                    >Кое-кто до сих пор принципиально
                                    Кто?
                                    >не поддерживает foreach, появившийся в 2004.
                                    Какой foreach?

                                    >(о да, string захуярили в 1,7, говоришь? когда это было)?
                                    Зря кстати.

                                    >Где switch с любым хешируемым типом
                                    Не нужен. Нужен нормальный свитч с диапазонами.

                                    >Где properties? Геттеры/сеттеры генерировать не заебешься?
                                    Сахар. Не нужно.

                                    >Отлично, половина из вышенаписаного есть в C#.
                                    Всё, и даже больше есть в скала.

                                    Кстати он (mono) по скорости сливает не только JVM, но даже компилированому js.
                                    Ответить
                                    • >С 96-го года. Называется anonymous class.
                                      КОСТЫЛЬ. Слив #1

                                      >Кто?
                                      http://forum.vingrad.ru/index.php?showtopic=348566&view=findpost &p=2474183
                                      На, сосни.

                                      >Зря кстати.
                                      Ну вот и пушка. Как на рнр сидят нубы, так на яве сидят тормоза.

                                      >Не нужно.
                                      Это линуксоидное "кококо нинужно", когда нинужен, например, флеш и другие вещи, которых нет или они работают хуево?

                                      >Всё, и даже больше есть в скала.
                                      Функциональное говно. Вот оно как раз не нужно.
                                      Ответить
                                      • >На, сосни.
                                        И что это значит?
                                        Ссылка на какой-то говнофорум в качестве пруфа.

                                        >Это линуксоидное "кококо нинужно"
                                        Тебе объясняют что такой свитч не нужен (хоть даже его сделали, я не пользуюсь - какой-толк?)
                                        Нужен по диапазонам. А вот его как раз нету.
                                        Ответить
                                        • >И что это значит?
                                          >Ссылка на какой-то говнофорум в качестве пруфа.
                                          Дыбилушка, может ты пойдешь туда и почитаешь? Или тебе няньку приставить надо, чтобы за тбя читала?

                                          >Нужен по диапазонам. А вот его как раз нету.
                                          Где мне это обьясняют?
                                          > я не пользуюсь
                                          А вот это многое обьясняет. Хочешь свой язык с блекджеком и шлюхами - пили его сам.
                                          Ответить
                                      • >>Где лямбды?
                                        >>Функциональное говно. Вот оно как раз не нужно.

                                        Ты явно сумашедший.
                                        Ответить
                                        • Фитон - язык с элементами ФП, а скала - слишком функциональное говно.
                                          Ответить
                                      • >КОСТЫЛЬ. Слив #1
                                        В чем костыль? Одни "ололо" и "кококо" ни одного аргумента.

                                        > слишком функциональное говно.
                                        Это эмоции. Каков четкий критерий между "слишком" функциональным и "не слишком"?
                                        Ответить
                                  • >Какое вообще отношение foreach и 2004 год имеют к замыканиям?

                                    Я так до сих пор и не услышал внятного ответа на свои вопросы и вообще какой-либо логики.

                                    Вы сейчас напоминаете мне гуру питона, который объединил в одном посте "джава-хуесосов" и "Apache Hadoop".
                                    Ответить
                                    • А какое они, блядь, должны иметь отношение? С чего ты взял, что они имеют отношение друг к другу? У них есть общее - и то, и то в яве "нинужно".
                                      Ответить
                                      • >У них есть общее - и то, и то в яве "нинужно".
                                        Что в яве "нинужно"? foreach? Или лямбды?

                                        К чему ты вообще упомянул 2004 год?
                                        Ответить
                                        • Прочти по ссылке выше ,дебилушка. 2004 год - когда в яве появился foreach.
                                          Ответить
                                          • Пи, что стих? Бензин закончился?
                                            Ответить
                                          • > когда в яве появился foreach.
                                            По крайней мере в яве он работает адекватно.

                                            Вот тебе foreach по массиву! Вот тебе замыкание в бороду! Вот тебе сишарп под ребро!
                                            http://ideone.com/5jaP3s

                                            >Прочти по ссылке выше
                                            Не нужны мне что кто-то где-то в интернете что-то сказал.
                                            Это чужие мнения. Не надо за них прятаться.
                                            Если ты знаешь проблему foreach - приводи пример.
                                            Ответить
                                            • Блядь, мудила, перейди по ссылке, почитай, сука, как ты меня бесишь. Там нету гомонигр, отвечаю.

                                              http://forum.vingrad.ru/index.php?showtopic=348566&view=findpost &p=2474183
                                              Ответить
                                              • Давай сюда примеры, аргументы, а твои говноссылки и эмоциональные возгласы не делают заявления о "недостаточно функциональных" и "слишком функциональных" более вескими.

                                                Твой foreach соснул:
                                                >http://ideone.com/5jaP3s

                                                Рекомендую сделать то же - работающий пример на ideone или lws.
                                                Ответить
                                            • > Вот тебе foreach по массиву! Вот тебе замыкание в бороду! Вот тебе сишарп под ребро!

                                              http://ideone.com/8jXdm1

                                              Просто нужно знать эту особенность.
                                              Ответить
                                              • Особенность чего? Насколько я понял, там проблема в замыканиях, а не в foreach, при чем тут foreach, блядь?
                                                Ответить
                                                • >Насколько я понял, там проблема в замыканиях, а не в foreach

                                                  Да нихера ты не понял.
                                                  >http://ideone.com/5jaP3s
                                                  >http://ideone.com/8jXdm1
                                                  Два одинаковых замыкания, а работают по разному.

                                                  В яве вот кода больше, но сразу понятно что происходит.
                                                  Отсюда повторяю изначальную мысль, которую пытался донести сверху треда: лучше иметь свёрнутый код, и возможность посмотреть как оно внутри, чем такой убогий и неочевидный for-each.
                                                  Ответить
                                                  • Хуй проссыш, что тебе в foreach не нравится, без замыканий все работает на ура. Я не пойму, что ты хочешь рассказать? Что foreach не нужен вообще? Да ты же уебак.
                                                    Ответить
                                                  • Позднее связывание, как в питоне? Ну а в чем проблема, как не в замыканиях, и какое это, блядь, отношение имеет к foreach?
                                                    Ответить
                                                    • >Ну а в чем проблема, как не в замыканиях

                                                      Проблема ровно одна: ты долбоёб с пафосом рассуждающий о замыканиях и for-each.
                                                      И в тоже время не можешь разобраться с простейшим примером.

                                                      Проблема в (замыканиях+foreach)
                                                      Не насторожила переменная j во втором примере:?

                                                      >Позднее связывание, как в питоне?
                                                      Но там-то введение дополнительной переменной никак не меняет картину:
                                                      http://ideone.com/lS5DWl
                                                      Ответить
                          • >Фолдинг можно настроить в любой среде
                            Фолдинг есть даже на говнокоде!
                            Ответить
                          • >Если тебе посреди квартиры насрать, то ты газеткой накроешь и будешь вокруг ходить?

                            Конечно. Убирать говно я не буду. Его надо оставить чтобы натыкать туда носом того кто насрал.

                            Накрою газеткой, потом найду того кто это сделал и заставлю убрать.
                            Наверное это твоё, вынужденное по жизни терпильское занятие - убирать чужое говно. Гы-гы.

                            Вот ты обосрался с фолдингом, этого никто убирать не будет, но я буду тыкать тебя лицом в твои же фекалии, как шкодного кота.

                            >А, так фолдинг - это просто скрытие "нинужного" текста?
                            http://govnokod.ru/12855
                            Ну вот, собственно фолдинг во всей красе.
                            Ответить
                            • И где же я обосрался? Это жавапетухи обосрались, выдавая КОСТЫЛЬ за фичу.

                              >http://govnokod.ru/12855
                              >Ну вот, собственно фолдинг во всей красе.
                              И нахуя ты это здесь запостил? Скажи пожалуйста.
                              Ответить
                              • >И нахуя ты это здесь запостил? Скажи пожалуйста.
                                Твоё унылое питоньё говно прикрыли. Чтоб не воняло. Понятный даже идиотам пример приносимой фолдигом пользы. А вот еще один:
                                http://govnokod.ru/12317#comment174366

                                >И где же я обосрался?
                                Внимательно смотри сюда:
                                >"главное, что работает в одной IDE."
                                Ответить
                                • А как правильно? В джвух, если поебаться? Ненужно, нужно из коробки и с одинаковым поведением.

                                  Питонье говно прикрыли? Вахахахаха, посмотрите, какой буйный. Из нормальных языков говно удаляют, а не газеткой прикрывают. Для буйных идиотов - газетка была метафора для фолдинга, а ты не въехал и на питон ее переклеил, бедненький.
                                  Ответить
                                  • >Вахахахаха, посмотрите, какой буйный.
                                    Странно. Вот почему-то на этом сайте у адептов питона и сисярпика посты такие будто их писал агрессивный школьник...

                                    >газетка была метафора для фолдинга, а ты не въехал и на питон ее переклеил, бедненький.
                                    Я привел пример, даже джва - как это бывает в жизни, а не в твоих метафорических фантазиях.
                                    Ответить
                                    • > посты такие будто их писал агрессивный школьник

                                      Да потому что это и есть агрессивный школьник, оправдывающий "говнистостью" своё неосиляторство предмета.
                                      Ответить
                                      • После нормальных языков от явы подташнивает. Ядро языка уебищно, может, внешние библиотеки это поправляют. Ты же вроде сам признал, что ява не без хуйни?
                                        Ответить
                                        • > ява не без хуйни?
                                          Как и любой живой язык. Многие вещи, кстати, в Java были изначально правильно сделаны, а в питоне появились лишь в третьей версии (внятное разделение разделение сырых бинарных массивов и юникодных строк, к примеру).
                                          Ответить
                                          • Ява - живой язык? Перечисли мне, что в нем поменялось за последние 10 лет.

                                            У современной тройки проблем на порядок меньше. В питоне одна из главных проблем - слишком большая динамичность, замедляющая переход с двойки.
                                            Ответить
                                    • Это закономерная реакция на while(true) { print "Сам дурак" }
                                      Ответить
                              • __костыль__
                                Исправил. Не благодари.
                                Ответить
                • > IntelliJ
                  Ъ
                  Ставлю. Главное не забыть. А ещё какие фолдинги она умеет? Это без доп. плагинов?
                  Ответить
                  • Я придумал аббревиатуру СИРОП:

                    Среда
                    Интегрированной
                    Разработки
                    Ориентированных
                    Программ

                    Думаю, Тарас одобрит
                    Ответить
                    • >СИРОП
                      Удачно. Сироп ассоциируется с синтаксичесим сахаром.
                      Ответить
                    • Неплохо, только непонятно куда ориентированных.
                      Ответить

    Добавить комментарий