У меня есть функция, которая принимает другую функцию в качестве аргумента. Я хочу проверить, является ли аргумент обычной функцией или генератором.
import types
def my_func(other_func):
if isinstance(other_func, types.GeneratorType):
# do something
elif isinstance(other_func, types.FunctionType):
# do something else
else:
raise TypeError(f"other_func is of type {type(other_func)} which is not supported")
Но проблема в том, что функция является методом класса, поэтому я получаю следующее:
other_func is of type <class 'method'> which is not supported
Метод класса выглядит следующим образом
MyClass:
def other_func(self, items):
for item in items:
yield item
Есть ли способ проверить, является ли метод класса генератором или функцией?