Я даже не знаю, является ли это правильным способом, но недавно у меня возникли проблемы при попытке использовать метод из объекта, как в качестве движка карты (отображение замыкания на элементы итератора), так и в качествегенератор генератора.
Я, вероятно, гораздо проще объяснить это с помощью примера кода:
class maybe_generator():
def __init__(self, doer):
self.doer = doer
def give(self):
for i in [1,2,3]:
self.doer(i)
def printer(x):
print('This is {}'.format(x))
def gener(x):
yield(x)
p = maybe_generator(printer)
p.give()
g = maybe_generator(gener)
print('Type of result is {}'.format(g.give()))
Вывод
This is 1
This is 2
This is 3
Type of result is None
Я бы ожидалДанный объект не будет иметь тип генератора вместо NoneType.Тогда мне интересно, как можно реализовать функцию, которая потенциально может генерировать генератор, или напрямую выполнить какой-либо эффект границы для итерируемого.
Заранее спасибо за вашу помощь