Just started as in, I’m about an hour into a 4 hour intro video. Seeing two basic ways of manipulating things and don’t understand the difference.

If I want to know the length of a string and I just guess at how to do it I would try one of these two things,

  1. Len(string)
  2. string.len()

What is the difference between these types of statements? How do I think about this to know which one I should expect to work?

  • charolastra
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    5 months ago

    Keyword “typically”. If I’m overriding dunder methods, then I’ll typically need to call the super method as well. It’s not like it’s forbidden.

    Consider the following:

    class MyStr(str):
         def len(self):
              return len(self)
              # OR
              return self.__len__()
    

    Both of the above return values are perfectly valid Python.