X = 1

def nester():
   X = 2                    # Przysłania zmienną globalną
   print(X)                 # Zmienna lokalna: 2
   class C:
       print(X)             # W zawierającej def (nester): 2
       def method1(self):
           print(X)         # W zawierającej def (nester): 2
       def method2(self):
           X = 3            # Przysłania zawierającą (nester)
           print(X)         # Zmienna lokalna: 3
   I = C()
   I.method1()
   I.method2()

print(X)                    # Zmienna globalna: 1
nester()                    # Pozostałe: 2, 2, 2, 3

