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

    −88

    1. 1
    2. 2
    exec "a" * 300000000 + " = 'FUCKING_LONG_VARIABLE'" # Создание переменной с длиннннным именем
    exec "print " + ("a" * 300000000) # Выведет 'FUCKING_LONG_VARIABLE'

    Это был эксперимент (не повторять дома!). Хотелось узнать количество значащих символов в имени переменной, оказалось что все:).
    Первая строка кода ужирает около 270 МБ памяти.

    Запостил: Niceblack, 17 Августа 2011

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

    • память у тебя жрет экзек.

      ничего ты не узнал. попробуй
      exec "print " + (("a" * 300000000) + "b")
      в старой сишечке валиным идентификатором являлись первые 32 символа имени переменной а твой "эксперемент" доакзал бы, что их триста мильёнов.
      Ответить
      • На самом деле так и делал, просто не стал сюда вставлять. Действительно все значимые.
        Ответить
        • А так:
          exec "a" * 300000000 + "b = 'FIRST_FUCKING_LONG_VARIABLE'"
          exec "a" * 300000000 + "c = 'SECOND_FUCKING_LONG_VARIABLE'"
          exec "print " + (("a" * 300000000)+"b")
          exec "print " + (("a" * 300000000)+"c")

          Разные значения выдаются?
          Ответить
    • код - говно, эксперимент - не завершен!
      Ответить
    • кроме того, неправильный подход к задаче.
      > Хотелось узнать количество значащих символов в имени переменной
      а вы проверяете, сколько символов вообще может быть в идентификаторе.
      нужно создать 2 переменных, у которых длина имени n, но различаются они только последним символом. n брать с 1 и увеличивать, пока первая переменная != вторая
      Ответить
    • а вообще я бы не стал спорить со спекой
      Ответить

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