352-10 Object-Oriented Python

Screen Link: https://app.dataquest.io/m/352/object-oriented-python/10/creating-and-updating-an-attribute

class NewList(DQ):
  
   def __init__(self, initial_state):
       self.data = initial_state
       self.length=self.calc_length()
   
   def append(self, new_item):
       """
       Append `new_item` to the NewList
       """
       self.data = self.data + [new_item]
       self.calc_length()
       
   def calc_length(self):
       length=0
       for i in self.data:
           length+=1
       **return length** ```

What I expected to happen: Class Attributes: ```{'length': **6**, 'data': [1, 1, 2, 3, 5, 8]}```

What actually happened: ```'data': [1, 1, 2, 3, 5, 8], 'length': **5**}``` 

Other details: `> self.length = length` should be instead of `**return length**` . But Why that doesn't work too.?