为什么内置函数而不是root类方法?

Tob*_*ias 4 python oop

(我确定这是一个FAQ,但也很难google)

为什么Python使用abs(x)而不是x.abs?

据我所知,abs()除了调用之外x.__abs__还可以在object.abs()中实现

它是历史的吗,因为根本不存在根类?

Ric*_*dle 13

Guido van Rossum的官方回答以及Fredrik Lundh的补充解释如下:http://effbot.org/pyfaq/why-does-python-use-methods-for-some-functionality-eg-list-index-但函数换其他-EG-LEN-list.htm

简而言之:

  1. 对于大多数此类操作,abs(x)比x.abs()更自然地读取

  2. 你知道abs(x)得到一个绝对值,而x.abs()方法可能意味着取决于x的类别.