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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
def enum(x):
    globals().update(map(reversed, enumerate(x.split())))

enum("""
    ONE
    TWO
    THREE
    FORTH
""")

Forth влияет...

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

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

  • Мне чот казалось что globals копию возвращает
    Ответить
          • Спасибо, кэп хуев. Зачем сделали вызов? РТФМит он меня, блядь.
            Ответить
            • Почему не сделали переменную? Наверное, чтобы нельзя было ей другой объект присвоить.
              Ответить
            • > Зачем сделали вызов?
              У Гвидо надо спрашивать. Подозреваю, что из-за вот этого:
              This is always the dictionary of the current module (inside a function or
              method, this is the module where it is defined, not the module from which it is called).


              А свойство — это и есть небольшой сахарок над вызовом функции, что, в общем-то, не очень укладывается в Питоновское «Explicit is better than implicit».
              Ответить
              • А, так это переменные уровня модуля, а не глобальные.
                Ответить
        • В Питоне почти всё возвращает ссылку. Чтобы получить копию, нужно самому пердолиться с клонированием.
          Ответить
          • примитивы копируются. int например. За str не скажу, да это и не важно бо она и так неизменяемая.
            Ответить
              • Я читал про двойку, вероятно в тройке с бигинтом это и не так, надо смотреть сырцы cpython.

                Но чисто логически если это не бигинт а обычный инт то зачем размещать его черте где и возвращать ссылк? Он же мелкий.

                Вообще программист не должен об этом думать. Можно вообще думать что всё всегда лежит в кучке и работает через ссылко, просто некоторые вещи ридонли
                Семантика-то одинаковая
                Ответить
                • В Питонии 3 есть только int, он с произвольной точностью. Это в двойке были инт и лонг.
                  Ответить
                  • Если там на самом деле (не в до-ко-ко-коментации, а реально внутри) только int с произвольной точностью, и нет нормального инта, этот язык тормознутое говно надо выкидывать.

                    Когда python перейдёт в XXI век? Программист должен выражать идеи, а задача компилятора - написать под них быструю программу (как реализовано в SQL, JavaScript, C++).
                    Ответить
                • > размещать его черте где и возвращать ссылк
                  Так и сделано. Ещё есть кеш с маленькими пислами.
                  Ответить
                • Если относительно маленькие значения хранятся в машинных интах, которые при переполнении автоматически промоутятся до бигинтов, то говорить о передаче по ссылке или по значению смысла вообще нет: это зависит от размера числа.
                  Ответить
                  • Я думаю что так и есть. Но это деталь реализации.
                    Ответить
                  • В питоне все передается по значению. В том числе и ссылки.
                    Ответить
            • Какие ещё примитивы? Всё есть объект..Все переменные хранят ссылку, функции возвращают ссылки, везде ссылки. Просто объекты типа int, float, str, tuple неизменяемые.
              Ответить
            • В питоне нет примитивов, всё передается по ссылке.
              Ответить
  • <?php
    function enum($x) {
        $tmp = array_flip(preg_split('/\W+/', $x, -1, PREG_SPLIT_NO_EMPTY));
        array_walk($tmp, function($value, $key){$GLOBALS[$key] = $value;});
    }
    
    enum(<<<'S'
        NULL
        ONE
        TWO
        THREE
        FORTH
    S
    );
    
    printf("%d %d %d %d %d\n",  $NULL, $ONE, $TWO, $THREE, $FORTH);


    Куд-кудах:
    https://ideone.com/hlQv7C
    Ответить
  • Если бы языки программирования рекламировали по телевидению, то "ONE, TWO, THREE, FORTH!" криэйтор бы назвал продающим слоганом и записал бы в книжечку.
    Ответить

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

Где здесь C++, guest?!

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


    8