Младший очень любит роботов-доставщиков, поэтому в какой-то момент мы купили ему такую игрушку. Не ту, что дорогая на радиоуправлении, а простенькую, с оттяжным моторчиком и светодиодами. Старшая это увидела и тоже себе такую попросила, купили и ей. Потом младший случайно увидел, что в доме есть второй ровер, и не его! Устроил скандал, пришлось ему отдать, а старшей купить третьего и попросить, чтобы спрятала.
И тут я подумал: а мог бы я сам сделать что-то типа такого дома, если бы игрушки не продавались, или вместо покупки второго-третьего-пятого? Вызов принят, засел за компас. Думал, что сделаю за вечер, но на самом деле с продумыванием конструкции, что где как должно соединяться, просидел дня четыре. И ещё столько же на сборку, потому что нельзя просто взять и с первого раза угадать все допуски и посадки :)
Моя версия крупнее, чем покупная игрушка, батареек хватает на подольше, и даже есть своего рода подвеска. Конечно, пространство для улучшений остаётся, но, получилось, кажется, довольно мило. Если вы хотите своим детям сделать прикольный сюрприз, я не поленился сверстать инструкцию по сборке, прикладываю её и все файлы. В архиве есть и редактируемый исходник в формате STEP. Просьба, кто напечатает, покажите в комментах :)
#diy@clockstackwheels#hobby@clockstackwheels
https://wiki.python.org/moin/GlobalInterpreterLock
In #CPython, the #global#interpreter lock, or #GIL, is a mutex that prevents multiple native #threads from executing Python bytecodes at once. This lock is necessary mainly because CPython's memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.)
https://docs.python.org/3/library/atexit.html
The #atexit module defines #functions to #register and #unregister cleanup functions. Functions thus registered are automatically executed upon normal interpreter termination. atexit runs these functions in the reverse order in which they were registered; if you register A, B, and C, at #interpreter#termination time they will be run in the order C, B, A.