Python:
class A:
x = 7
@classmethod
def method(cls, x):
cls.x = x
instance = A()
instance.x == 7 # True
instance.x = 77
instance.x == 77 # True
A.x == 7 # True
instance.method(42)
instance.x == 77 # True
A.x == 42 # True
#subclass
import time
class Tutorial:
data = "Try"
counter = 0
def print_data_with_new_value(self):
print(self.data+str(self.counter))
@staticmethod
def print_time():
print("Time of finish: " + time.asctime())
@classmethod
def plus_counter(cls):
cls.counter += 1
#main
from tutorial import Tutorial
def some_test():
for i in range(10):
Tutorial.plus_counter()
obj = Tutorial()
obj.print_data_with_new_value()
Tutorial.print_time()
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
#print_hi('PyCharm')
some_test()
#END
Если запустим, у нас 10 раз создаеться новые об'екты класа Tutorial, и будет выводиться Try1,Try2..., окей, но если ПЕРЕД цыклом, мы укажем создание экземпляра, то у нас все равно будет выводиться Try1, Try2... Почему? Из-за self?