On Thu, 24 Sep 2020 18:13:54 +0200 Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> wrote: > > How can this possibly work without a "global namespace" declaration in > > markup_namespace()? > > ... While I'm not a python expert, the namespace variable is global > because it was defined outside the "markup_namespace" function. Assignments within functions are *always* local unless declared global. Try this: $ python3 >>> x = 0 >>> def y(v): >>> x = v >>> >>> y(1) >>> x 0 >>> So your assignment to "namespace" in markup_namespace() cannot change the global, since it's not declared global. jon