sys.modules
, это сравнительно недорого. Но если у вас группа связанных модулей и каждый импортирует один и тот же набор модулей, то может быть, у вас не совсем удачно они организованы. Обычно ожидаешь, что дочерние модули импортируют родительские классы, которые уже сами управляются с _mysql
и т. п. rand (10) * 20; # (rand 10) * 20
rand +(10) * 20; # rand (10 * 20)
#ifdef ... #endif
. Me _personally_, I want to have something that is very repeatable and non-clever. Something I understand _or_ tells me that it can't do it. And quite frankly, merging single-file history _without_ taking all the other files' history into account makes me go «ugh».
The important part of a merge is not how it handles conflicts (which need to be verified by a human anyway if they are at all interesting), but that it should meld the history together right so that you have a new solid base for future merges.
In other words, the important part is the _trivial_ part: the naming of the parents, and keeping track of their relationship. Not the clashes.
And it looks like 99% of SCM people seem to think that the solution to that is to be more clever about content merges. Which misses the point entirely.
reset
; я еще, помню, долго вкуривал, что это заreset
такой.Внутри
foo_Bar_t
ничего, это неполный тип, я объявляю его просто какtypedef struct foo_Bar foo_Bar_t
и дальше работаю исключительно с указателями. (У них там в псевдо-Си вообщеvoid*
всякий раз, когда по смыслу нужен экземпляр (this
), но я наклепал все-таки разных типов для удобства.)