class Foo: attr = "Common" def __init__(self, arg1, arg2): self.attr1 = arg1 # Instance attribute self.attr2 = arg2 # Składowe klasy def main(): f1 = Foo(1, "b") f2 = Foo(2, "a") print(f1.attr2) # b print(f2.attr2) # a f1.attr2 = "e" print(f1.attr2) # e print(f2.attr2) # a print(f1.attr) # Common print(f2.attr) # Common print(Foo.attr) # Common Foo.attr = "xxx" # Zmienia składową klasy dla wszystkich instancji print(f1.attr) # xxx print(f2.attr) # xxx print(Foo.attr) # xxx f1.attr = "zzz" # Zmienia składową klasy tylko dla tej instancji print(f1.attr) # zzz print(f2.attr) # xxx print(Foo.attr) # xxx Foo.attr = "aaa" # Zmienia składową klasy dla wszystkich instancji # ale już nie dla f1 print(f1.attr) # zzz print(f2.attr) # aaa print(Foo.attr) # aaa if __name__ == '__main__': main()