I'm new to programming. First, the following is my code:
x = 11 def f(): x = 22 print(x) class C: print(x) f() I got three printed results, "22 22", as output. When I changed my code like this:
x = 11 def f(): x = 22 print(x) class C: print(x) x = 33 print(x) f() I got "22 11 33" instead of what I'm expecting: "22 22 33".
It seems like when I add a local x in the nested class, the order of variable searching is changed. I believe there's some tricks about scopes that I don't know yet. Can anyone explain this to me?