Просто как школьник попался на маленькой мелочи, на которой стыдно попадаться помидору. Потратил 3 часа жизни, так как возможности дебажить не было.

self.layers: Dict[int, List[FuckingObject]] = dict.fromkeys(list(range(0, self.layers_count)), [])

Казалось бы, что может пойти не так)

Вроде мелочь, а грустно. Так много мог сделать за вечер полезного. А как у вас дела?)

  • crypt
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    А как у вас дела?)

    стараюсь поменьше писать на питоне. и читать на другие темы.

  • Sahas
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    3 years ago

    стало интересно, как же ты решил данную проблему?..

    P.S. Гугл, конечно, всё знает, но какой вариант ты выбрал?..

    • ЕвгенийOP
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      3 years ago

      Гугл, конечно, всё знает, но какой вариант ты выбрал?

      {layer: [] for layer in range(self.layers_count)}
      

      со списками надо быть осторожными :)

      Надо то надо, но без практики забывается. Я на шарпах пишу в основном, а на питон в текущем проекте только некоторые расчёты вынесены.

      p.s. и кстати не гугол, а gpt болван. Я с ним уже гуглить почти перестал. Интересно, сказывается ли это негативно на способности мыслить. На желании лишний раз подумать точно сказывается)

      • ThePlayerZero
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        Я на шарпах пишу в основном, а на питон в текущем проекте только некоторые расчёты вынесены.

        расчёты не в питон вынесены, а в си(плюсплюс)

        по факту я думаю вам сам питон и не нужен, но без него вы не смогли бы дёргать ядро нампая (или чё там у вас), потому что напрямую из шарпов нельзя

        • ЕвгенийOP
          link
          fedilink
          arrow-up
          0
          ·
          3 years ago

          по факту я думаю вам сам питон и не нужен

          Всё банально, у питона богатый набор библиотек, scipy тот же, numpy, а у нас сроки сильно ограничены и писать некоторые вещи на шарпах в данной ситуации было сильно дольше. Да и архитектура у нас не препятствует написанию части функционала на любом удобном языке.

  • ThePlayerZero
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    Прикольная грабля, мне понравилась

    В целом данная грабля является лишь более мудрёным вариантом стандартной питоновской грабли

    input:

    x = [1]
    y = x
    x += [2]
    print (x)
    print (y)
    

    output:

    [1, 2]
    [1, 2]
    

    Поскольку принимая единственный единственный value в dict.fromkeys (keys, value), питон просто не может сделать иначе, даже если бы захотел

    Почему не может? Потому что альтернативой было бы звать __copy__() или тем более __deepcopy__() (какой из двух кстати звать?) в количестве len(keys)-1 раз от value.

    В свою очередь, это может привести к непредсказуемым последствиям на кастомных классах, хотя и выглядит очень уместным непосредственно для list из встроенных типов, типа чисел

  • TheAnonymous
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    В результате косплея функциональщины получается такое вот минное поле