Why Recreate Append or Len? Seems Like Extra Work

Someone please explain to me WHY “We’ll be recreating the functionality of the list.append() from the built-in Python list class” ???

(same for len() )

Can’t we just use the built-in?
Why are we reinventing this wheel?

https://app.dataquest.io/c/78/m/435/object-oriented-python/10/creating-an-append-method
https://app.dataquest.io/c/78/m/435/object-oriented-python/11/creating-and-updating-an-attribute

For append, looks like the exercise just wants you to practice OOP, wrapping the append that you usually code on the global scope inside a class structure now.
Rather than reinvent, things are done this way usually to update or increase functionality.
There are many dunder methods that can be overwritten to change the behaviour of usual syntax like +. (Dunder/Magic Methods in Python - Software Development for Everyone).
For things like getting or setting information on objects, we may want to do pre or post-processing or add logic on top of what python already gives.

For len, not all objects simply allow you to len(object). This is syntactic sugar of object.__len__() and some objects like generators don’t have this method. You have to loop through to consume it and count the length.