- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
>>> max
<built-in function max>
>>> max.__call__
<method-wrapper '__call__' of builtin_function_or_method object at 0x01D72080>
>>> max.__call__.__call__
<method-wrapper '__call__' of method-wrapper object at 0x022D2730>
>>> max.__call__.__call__.__call__
<method-wrapper '__call__' of method-wrapper object at 0x022D29B0>
>>> max.__call__.__call__.__call__.__call__
<method-wrapper '__call__' of method-wrapper object at 0x022D2970>
>>> max.__call__.__call__.__call__.__call__(1,2,3)
3
Разумеется, встроенные функции внутренне вызываются по другому, а метод __call__ у них не более чем формальность, "method-wrapper object", как и показано в ОП-посте.
even the "everything is an object" is an object.
even the "even the \"everything is an object\" is an object." is an object.
even the "even the \"even the \\\"everything is an object\\\" is an object.\" is an object." is an object.
WHERE IT ALL ENDS!????
ЗЫ в какой-то мере это как бы и демонстрирует маразм концепции "everything is an object". или как уже было сказано классиками в RFC1925, (6a): "It is always possible to add another level of indirection."
Оглядываясь назад, в своей карьере я видел на порядок больше говна созданого во славу "однообразия" - по сравнению с говном созданым по незнанинию или из-за инкомпетенции. Однообразие очень хорошая отмазка.