0

What are the advantages of having a python method, like lower(), being applied to an appropriate object, s, via the dot notation (i.e., s.lower()) versus a method, like len(), being also applied appropriately receiving the object as an argument, e.g. len(s) ? If I want to create such a method / function, what are the critical points I should consider choosing the first or the second implementation? Thanks!

pebox11
  • 3,377
  • 5
  • 32
  • 57
  • API consistency. Also see http://effbot.org/pyfaq/why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list.htm – Martijn Pieters Jun 21 '17 at 11:21

1 Answers1

0

In my opinion, If the functionality should be part of an object behavior and it's related only to that object than implement it as a method at the class scope, for example, only str should have functions like lower.

When the function can be applied to a lot of class types like len can be applied on lists or on str than it should be a function.

omri_saadon
  • 10,193
  • 7
  • 33
  • 58