Peter Otten <__pete...@web.de> writes: > On 31/03/2023 15:01, Loris Bennett wrote: [snip (53 lines)]
> Your problem has nothing to do with logging -- it's about visibility > ("scope") of names: > >>>> def use_name(): > print(name) > > >>>> def define_name(): > name = "Loris" > > >>>> use_name() > Traceback (most recent call last): > File "<pyshell#56>", line 1, in <module> > use_name() > File "<pyshell#52>", line 2, in use_name > print(name) > NameError: name 'name' is not defined > > Binding (=assigning to) a name inside a function makes it local to that > function. If you want a global (module-level) name you have to say so: > >>>> def define_name(): > global name > name = "Peter" > > >>>> define_name() >>>> use_name() > Peter Thanks for the example and reminding me about Python's scopes. With global name def use_name(): print(name) def define_name(): name = "Peter" define_name() use_name() I was initially surprised by the following error: ~/tmp $ python3 global.py Traceback (most recent call last): File "/home/loris/tmp/global.py", line 10, in <module> use_name() File "/home/loris/tmp/global.py", line 4, in use_name print(name) NameError: name 'name' is not defined but I was misinterpreting global name to mean define a global variable 'name' whereas it actually seems to mean more like use the global variable 'name' Correct? -- This signature is currently under constuction. -- https://mail.python.org/mailman/listinfo/python-list