Пример ниже показывает как в Python реализована передача значений между методами используя контекст экземпляра класса (т.е., когда мы порождаем переменную в выражении «c = A()», обращаясь к ней, мы обращаемся к экземпляру класса).
Как известно, в Python функции могут существовать вне класса, в этом случае в параметрах такой функции может ничего не передаваться. Однако, когда мы определяем функцию внутри класса, первым параметром идёт «self«, т.е. ссылка на контекст экземпляра класса, и такую функцию мы уже будем называть методом. Эта ссылка неявно передаётся в метод интерпретатором каждый раз когда мы вызываем метод, таким образом нам не нужно указывать это значение самостоятельно.
class A: list1 = [] def method_a(self): self.list1 = [1, 2, 3] def method_b(self): print(self.list1)
Теперь запускаем код в интерпретаторе
# create instance of class A() and name the instance 'c' c = A() # call method_a() for instance 'c', this will set value to list1 on the instance-wide c.method_a() # call mathod_b() for instance 'c', this will get value of list1 from instance c.method_b() >>> [1, 2, 3] # we can also get the value of 'list1' by calling the attribute of instance 'c' c.list1 >>> [1, 2, 3]
Это свойство Python, как объектно-ориентированный языка, позволяет передавать значения из одного тестового метода в другой тестовый метод.