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

    −106

    1. 1
    "<br />".join(["%s" % template for template in rendered_templates ])

    моё... у меня вечная мания всё усложнить :)

    Запостил: Nemoden, 21 Апреля 2012

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

    • Не вижу говнокода. Совершенно нормальная конструкция для какого-то узконаправленного скрипта.
      Ответить
      • а то, что это - эквивалент
        "<br />".join(rendered_templates)
        ?
        Ответить
        • Не совсем.
          >>> "".join([1, 2, 3])
          Traceback (most recent call last):
            File "<stdin>", line 1, in <module>
          TypeError: sequence item 0: expected string, int found
          >>> "".join("%s" % s for s in [1, 2, 3]) # а пример из поста
          '123'
          >>> "".join(map(str, [1, 2, 3])) # можно ещё так
          '123'

          В общем, единственная проблема кода - неоправданное использование оператора форматирования. Надо было str вместо него. P.S. И предпочтительней generator expression вместо списка. Меньше памяти займет.
          Ответить
          • генератор тут не нужен, т.к. я хочу вывести все отрендеренные темплейты, надо было написать про свою задачу для начала. сорри
            Ответить
        • Ну да, конечно, а каст где?
          Ответить
          • нужно было сказать, что у меня rendered_templates - список строк, хотя само имя переменной как бы намекает на это...

            согласен - не совсем ГК
            Ответить
    • "<br />".join([ str(template) for template in rendered_templates ])
      Ответить
      • "<br />".join(map(str, rendered_templates ))

        Список абсолютно лишний.
        Ответить

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