Hej, właśnie poznaję koncepcję dekoratora i nie jestem pewien jak zwrócić w nim listę otrzymaną z innej funkcji (którą chcę udekorować), tzn. funkcja A zwraca listę i w dekoratorze robię wrappera i tam umieszczam funkcje B modyfikującą listę, a następnie zwracam wrappera, ale otrzymuję wartość None.
def my_walking_decorator(fn):
def wrapper():
walk = fn()
for step in walk:
step += ' cross'
return wrapper
def walking():
steps = []
for i in range(1,11):
tmp = 'step ' + str(i)
steps.append(tmp)
return steps
walking_decorated = my_walking_decorator(walking)
print(walking_decorated())
Gdzie popełniam błąd? IMHO powinno zwracać listę z dopisanym "cross", bo jak np wypisuję jakiś tekst i dekorator tylko wypisuje jakiś tekst dodatkowo, to działa.