Вот возможное решение:
class Foo:
def __init__(self) -> None:
self._a, self._b = None, None
self.test(a=1, b=2)
def test(self, a=None, b=None):
if a is None:
a = self._a
else:
self._a = a
if b is None:
b = self._b
else:
self._b = b
return a, b
Таким образом, каждый раз, когда вы вызываете test
, устанавливая a
и / или b
, их значения сохраняются в памяти, чтобы их можно было повторно используется позже. Пример:
f = Foo()
print(f.test()) # 1, 2
print(f.test(b=4)) # 1, 4
print(f.test()) # 1, 4
print(f.test(a=3)) # 3, 4
print(f.test()) # 3, 4
print(f.test(2, 7)) # 2, 7
print(f.test()) # 2, 7