Я думаю, что вы можете попробовать получить к нему доступ с помощью kwargs.get и указать там значение по умолчанию.
def __init__(self, *args, **kwargs):
self.tank_size = kwargs.get('tank_size', None)
Так что теперь вы можете передать tank_size конструктору Car и далее конструктору Tank. Если вы все еще не хотите использовать значение по умолчанию, вы можете снова передать его через kwargs.
def __init__(self, make, model, year, **kwargs):
self.make = make
self.model = model
self.year = year
self.tank = Tank(**kwargs)
Так что это будет похоже на
class Car():
def __init__(self, make, model, year, **kwargs):
self.make = make
self.model = model
self.year = year
self.tank = Tank(**kwargs)
class Tank():
def __init__(self, *args, **kwargs):
self.tank_size = kwargs.get('tank_size', None)
def describe_tank(self):
if self.tank_size:
print("This car has a " + str(self.tank_size) + "-L tank.")
else:
print("No info about the tank.")
car = Car("bmw", "m5", 2000)
car.tank.describe_tank()
new_car = Car("bmw", "m5", 2000, tank_size=3)
new_car.tank.describe_tank()