Просто как школьник попался на маленькой мелочи, на которой стыдно попадаться помидору. Потратил 3 часа жизни, так как возможности дебажить не было.
self.layers: Dict[int, List[FuckingObject]] = dict.fromkeys(list(range(0, self.layers_count)), [])
Казалось бы, что может пойти не так)
Вроде мелочь, а грустно. Так много мог сделать за вечер полезного. А как у вас дела?)
https://github.com/satwikkansal/wtfpython
Буквально вчера студентам рассказывал, что со списками надо быть осторожными :)
А как у вас дела?)
стараюсь поменьше писать на питоне. и читать на другие темы.
стало интересно, как же ты решил данную проблему?..
P.S. Гугл, конечно, всё знает, но какой вариант ты выбрал?..
Гугл, конечно, всё знает, но какой вариант ты выбрал?
{layer: [] for layer in range(self.layers_count)}со списками надо быть осторожными :)
Надо то надо, но без практики забывается. Я на шарпах пишу в основном, а на питон в текущем проекте только некоторые расчёты вынесены.
p.s. и кстати не гугол, а gpt болван. Я с ним уже гуглить почти перестал. Интересно, сказывается ли это негативно на способности мыслить. На желании лишний раз подумать точно сказывается)
Я на шарпах пишу в основном, а на питон в текущем проекте только некоторые расчёты вынесены.
расчёты не в питон вынесены, а в си(плюсплюс)
по факту я думаю вам сам питон и не нужен, но без него вы не смогли бы дёргать ядро нампая (или чё там у вас), потому что напрямую из шарпов нельзя
по факту я думаю вам сам питон и не нужен
Всё банально, у питона богатый набор библиотек, scipy тот же, numpy, а у нас сроки сильно ограничены и писать некоторые вещи на шарпах в данной ситуации было сильно дольше. Да и архитектура у нас не препятствует написанию части функционала на любом удобном языке.
Прикольная грабля, мне понравилась
В целом данная грабля является лишь более мудрёным вариантом стандартной питоновской грабли
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из встроенных типов, типа чиселВ результате косплея функциональщины получается такое вот минное поле


