result = func(*args,**kwargs)
rezultatem jest wynik dzialania funkcji przekazanej jako argument do funkcji zewnętrznej
CreateFunctionWithWrapper(func):
oraz argumentów przekazanych funkcją
def func_with_wrapper(*args,**kwargs):
natomiast argumenty definiuje :
*argspozwala nam przekazać zmienną liczbę argumentów innych niż słowa kluczowe do funkcji Pythona. W funkcji powinniśmy użyć gwiazdki ( *) przed nazwą parametru, aby przekazać zmienną liczbę argumentów.
natomiast ...
**kwargspozwala nam przekazać zmienną liczbę argumentów słów kluczowych do funkcji Pythona. W funkcji używamy podwójnej gwiazdki ( **) przed nazwą parametru, aby wskazać ten typ argumentu.
natomiast co do słów kluczowych :
Słowa kluczowe to specjalne ciągi, które są zarezerwowane przez język programowania. Ciągów tych nie można używać jako nazw zmiennych zdefiniowanych przez użytkownika ani innych nazw identyfikatorów.
https://gocoding.org/pl/s%C5%82owa-kluczowe-Pythona/
Więc ostatecznie rezultat zwraca wewnętrznym wywołaniem result - to rezultat funkcji func o wskazanych parametrach
Tu masz też link do notki w zakresie funkcji zwracanych przez funkcje https://inthou.pl/python-4-funkcja-zwracajaca-funkcje/