Ваш метод double()
имеет два оператора return, 2-й из которых никогда не будет выполнен, так что это проблема номер 1.
Вторая проблема, кажется, вы хотите вернуть новый объект Box
с удваивайте значения, однако вы удваиваете значения current one и затем возвращаете длину (int
).
Это, вероятно, то, что вы пытаетесь сделать:
def double(self):
return Box(self.__length * 2, self.__width * 2)
Таким образом Box(1, 2).double().get_length()
даст вам то, что вы ожидаете - 2
.
В целом, кажется, что вы новичок в python. В отличие от других языков, в python, как правило, нет необходимости иметь «приватные» атрибуты (к ним можно получить доступ, если вы действительно хотите). Обычно достаточно просто использовать self.length
и self.width
. Если вы когда-нибудь захотите добавить логи c при доступе, используйте декоратор @property
.
Дополнительная информация .