Поскольку types.BuiltinFunctionType
- это то же самое, что и types.BuiltinMethodType
:
>>> import types
>>> types.BuiltinFunctionType is types.BuiltinMethodType
True
, невозможно отличить функции от методов, которыереализовано в C:
>>> isinstance(sorted, types.BuiltinMethodType)
True
>>> isinstance(int.from_bytes, types.BuiltinFunctionType)
True
И все же, python четко знает, что sorted
- это функция, а int.from_bytes
- это метод, который мы можем увидеть в их repr
:
>>> sorted
<built-in function sorted>
>>> int.from_bytes
<built-in method from_bytes of type object at 0x7fded4c9d860>
Почему тогда BuiltinFunctionType
и BuiltinMethodType
- это одно и то же?Есть или нет разница между функциями и методами, определенными в C?