Как обозначить тип данных для встроенной функции в python?
В python есть встроенный модуль operator
.
Вопрос, что нужно указать после ==
, чтобы следующие выражения возвращали True
.
import operator
print(type(operator) == some_module_data_type)
print(type(operator.add) == some_builtin_function_or_method_data_type)
# ожидаю, что вернётся два True
Можно ли потом указать это как подсказку к аргументам в функции?
def some_func(operator_method: some_builtin_function_or_method_data_type):
pass
some_func(operator.add)
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
from types import BuiltinFunctionType, ModuleType
import operator
print(type(operator), type(operator) is ModuleType)
print(type(operator.add), type(operator.add) is BuiltinFunctionType)
Вывод:
<class 'module'> True
<class 'builtin_function_or_method'> True
Насчёт подсказок у меня линтера нет проверить, но, видимо, тоже так:
from types import BuiltinFunctionType
def some_func(operator_method: BuiltinFunctionType):
pass
some_func(operator.add)