Передача методу аргументов по умолчанию, полученных от другого метода
Помогите, пожалуйста, разобраться - как передать методу аргумент "по умолчанию", возвращенный другим методом?
Поясню вопрос на примере.
class Test:
def return_b(self) -> int:
b = 5
return b
def a_plus_b(self, a, b=return_b) -> None:
print(a + b)
В данном случае, в метод a_plus_b
в переменную b
передается адрес в памяти как значение по-умолчанию, соответственно, код в таком виде не работает. Вижу два варианта разрешения ситуации: первый - переписать функцию, явно задав значение b
:
def a_plus_b (self, a, b=return_b) -> None:
b = self.return_b()
print (a+b)
Второй вариант - работая непосредственно с объектом, передать значение функцией:
obj = Test()
obj.a_plus_b(3,obj.return_b())
Вопрос. Как возможно по-другому реализовать функцию a_plus_b
, чтобы она принимала аргумент по-умолчанию - как возвращенное значение функции return_b
?
Хотелось бы как-то так, но на второй self интерпретатор ругается:
def a_plus_b(self, a, b=self.return_b()) -> None:
print(a + b)
P.S. только начал изучать ООП в Python, не кидайтесь тряпками =) Большое спасибо!