Как обозначить тип данных для встроенной функции в 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)
→ Ссылка