Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python

class RaceCar - fuel_remaining challenge

I would like to know why can I NOT add the laps attribute in the brackets after init . I was unable to complete the challenge till removing 'laps' from the brackets after init but still adding it to the codeblock as self.laps = 0

Here is what worked to pass the challenge: class RaceCar:

def __init__(self, color, fuel_remaining, **kwargs):
    self.color = color
    self.fuel_remaining = fuel_remaining 
    self.laps = 0


    for key, value in kwargs.items():
        setattr(self, key, value)

def run_lap(self, length):
    self.length = length
    self.fuel_remaining -= length * 0.125

    self.laps += 1 

But I why can 'laps' not be added in the following (see in the first line below):

def init(self, color, fuel_remaining, laps, **kwargs): self.color = color self.fuel_remaining = fuel_remaining self.laps = 0

1 Answer

Steven Parker
Steven Parker
243,253 Points

Adding an unexpected argument needed to create an instance breaks the testing code, which is trying to create a new instance without using that argument.

It doesn't make sense for that to be an argument anyway, since internally it is always set to 0.