История изменений
Исправление Norgat, (текущая версия) :
Я бы переводил functions тут как возможности, а не как функции. Или функциями, но как в контексте синтаксиса их вызова.
Ну а вообще:
>>> type(int)
<class 'type'>
>>> type(int.__init__)
<class 'wrapper_descriptor'>
>>> type(any)
<class 'builtin_function_or_method'>
>>> def foo(): return 1
...
>>> type(foo)
<class 'function'>
>>> type(type)
<class 'type'>
Те int(a) это инстанцирование класса, как ты верно написал. Ну и как бы функции это тоже классы, строго говоря. А вызов функций это просто вызов соответствующего метода something. С точки зрения написания интерпретатора так точно легче чем делать и функции и объекты сущностями первого порядка.
Причина - реализация математики поверх процессоров. man int_max, int_min приколы. Потому что в python числа у нас обернуты в объекты:
>>> a = 1
>>> a.__init__
<method-wrapper '__init__' of int object at 0x00007FFC206B09B8>
Касательно примера int('3', base=4)
- так в синтаксисе python такой вызов функций тоже есть, так что это просто сахар на который можно не обращать внимания.
Исправление Norgat, :
Я бы переводил functions тут как возможности, а не как функции. Или функциями, но как в контексте синтаксиса их вызова.
Ну а вообще:
>>> type(int)
<class 'type'>
>>> type(int.__init__)
<class 'wrapper_descriptor'>
>>> type(any)
<class 'builtin_function_or_method'>
>>> def foo(): return 1
...
>>> type(foo)
<class 'function'>
>>> type(type)
<class 'type'>
Те int(a) это инстанцирование класса, как ты верно написал. Ну и как бы функции это тоже классы, строго говоря. А вызов функций это просто вызов соответствующего метода something. С точки зрения написания интерпретатора так точно легче чем делать и функции и объекты сущностями первого порядка.
Причина - реализация математики поверх процессоров. man int_max, int_min приколы. Потому что в python числа у нас обернуты в объекты:
>>> a = 1
>>> a.__init__
<method-wrapper '__init__' of int object at 0x00007FFC206B09B8>
Касательно примера int(3, base=3)
- так в синтаксисе python такой вызов функций тоже есть, так что это просто сахар на который можно не обращать внимания.
Исправление Norgat, :
Я бы переводил functions тут как возможности, а не как функции.
Ну а вообще:
>>> type(int)
<class 'type'>
>>> type(int.__init__)
<class 'wrapper_descriptor'>
>>> type(any)
<class 'builtin_function_or_method'>
>>> def foo(): return 1
...
>>> type(foo)
<class 'function'>
>>> type(type)
<class 'type'>
Те int(a) это инстанцирование класса, как ты верно написал. Ну и как бы функции это тоже классы, строго говоря. А вызов функций это просто вызов соответствующего метода something. С точки зрения написания интерпретатора так точно легче чем делать и функции и объекты сущностями первого порядка.
Причина - реализация математики поверх процессоров. man int_max, int_min приколы. Потому что в python числа у нас обернуты в объекты:
>>> a = 1
>>> a.__init__
<method-wrapper '__init__' of int object at 0x00007FFC206B09B8>
Исходная версия Norgat, :
Я бы переводил functions тут как возможности, а не как функции.
Ну а вообще:
>>> type(int)
<class 'type'>
>>> type(int.__init__)
<class 'wrapper_descriptor'>
>>> type(any)
<class 'builtin_function_or_method'>
>>> def foo(): return 1
...
>>> type(foo)
<class 'function'>
>>> type(type)
<class 'type'>
Те, что int(a) это инстанцирование класса. Потому что в python числа у нас обернуты в объекты:
>>> a = 1
>>> a.__init__
<method-wrapper '__init__' of int object at 0x00007FFC206B09B8>
Причина - реализация математики поверх процессоров. man int_max, int_min приколы.