在面向对象编程的上下文中,功能不同于方法。
当我检查帮助文档时,这段代码
?len
输出
Signature: len(obj, /)
Docstring: Return the number of items in a container.
Type: builtin_function_or_method
这是否意味着len()可能是函数还是方法取决于具体情况?
答案 0 :(得分:3)
有一个内置的len
功能 。您可以像len(obj)
一样使用它。每个对象都可以实现自己的__len__
方法来覆盖len()
返回的内容; len
函数将调用__len__
方法。
如果任何对象选择也实现len
方法,则可以这样做,但这与len
函数或__len__
约定无关。
builtin_function_or_method
只是意味着手册没有特别区分这两件事,并将它们都归为同一类型。
答案 1 :(得分:2)
len()
是一个函数,而__len__()
是方法。
阅读Here了解更多信息。