Змея / Говнокод #24866 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
#Было:
sorted(lst, key=lambda x: x['key'])
#или
sorted(lst, key=operator.itemgetter('key')

#стало:
sorted(lst, key=S_['key'])

Говнокоданы, как вам такая идея?

Запостил: syoma syoma, (Updated )

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

    • S_ - это магия. Апи такое устраивает, дурачок?
      Ответить
      • Реализовал, проверь:
        class S:
            def __getitem__(self, y):
                return lambda x: x[y]
        S_ = S()
        Прикольно.
        Ответить
        • Перевёл, проверь:
          <?php
          class S {
              public function __get($y) {
                  return function($x) {return $x[$y];}
              }
          }
          
          $S_ = new S;
          Ответить
          • <?php
                class Comparator {
                    public function __get($x) {
                        return function($a, $b)use($x) {return strcasecmp($a[$x], $b[$x]);};
                    }
                }
                 
                $_ = new Comparator;
                 
                $data = array(
                    array('name' => 'xyu', 'length' => '30'),
                    array('name' => 'pizda', 'length' => '0'),
                    array('name' => 'dzhigurda', 'length' => '200')
                );
                 
                usort($data, $_->name);
                 
                var_dump($data);


            https://ideone.com/u4T5f4
            Ответить
  • Ещё, в отличии от itemgetter, оно может поддерживать много уровней (сортировка жысона по параметрам - типичный юз кейс). Кстати, что мешало это там сделать?

    S_['huj']['pizda']['dzhigurda']
    Ответить
    • А itemgetter'ы друг в друга не вкладываются? Хотя походу нет, раз один параметр.
      Ответить
        • Х.з. тут недавно композицию функций мутили на питоне, можно что-то типа itemgetter('hui') * itemgetter('pizda') * itemgetter('djigurda'). Где * - оператор композиции.
          Ответить
  • S_ - это $_ из перла и руби, дефолтовая переменная.
    Ответить
  • Кто-то реально использует итемы и аттрибуты в одном выражении? Типа S_.asd['a'], нужно это?
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8