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

    −47

    1. 1
    s = [None for x in range(3)]

    list comprehensionы головного мозга

    Запостил: splatt, 27 Мая 2016

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

    • None * 3
      Ответить
      • [None]*3
        Ответить
        • [None, None, None]
          Ответить
        • >>> onedim = [0]*3
          >>> onedim
          [0, 0, 0]
          >>> multidim = [[0]*3]*3
          >>> multidim
          [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
          >>> multidim[0][0] = 1
          # Бабах!
          >>> multidim
          [[1, 0, 0], [1, 0, 0], [1, 0, 0]]


          Вот таким простым образом можно отстрелить себе ногу напитоне.
          Ответить
          • Я один раз отстрелил себе так ногу, теперь не использую этот дебильный перегруженный оператор.
            Ответить
          • Там такого немало. С изменяемыми объектами напитоне опасно. Еще можно вспомнить говнокод со списком в кортеже.
            Ответить
          • In [2]: onedim[0] is onedim[1]
            Out[2]: True
            Ответить
        • Ошибка. Создастца ссылка, так нельзя в питоне делать. Это грубая ошибка и незнание основ.
          Ответить
    • repeat(None, 3), ё-пт
      Ответить

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