Po co w ogóle funkcje zagnieżdżone?

OliviaPyAutor

Nie widzę sensu definiowania funkcji w funkcji.

0

Komentarze 4

Zaloguj się, żeby dołączyć do dyskusji.

Zaloguj się Załóż konto
  1. ElaKowalska

    Najczęściej do małych funkcji pomocniczych, których nikt poza funkcją zewnętrzną nie potrzebuje. Nie zaśmiecają reszty programu.

    1
    1. ZosiaNodpowiedzi: 2

      I do domknięć — funkcja wewnętrzna "pamięta" zmienne z zewnętrznej:

      def mnoznik(k):
          def razy(x):
              return x * k
          return razy
      
      podwoj = mnoznik(2)
      print(podwoj(21))  # 42

      To podstawa dekoratorów, które spotkasz później.

      1
      1. OliviaPyAutorodpowiedzi: 1

        Funkcja zwracająca funkcję... trochę mi to miesza w głowie, ale przykład z mnożnikiem jest jasny.

        0
        1. OllieGrant

          Normalne, że na początku miesza. Wróć do tego za kilka tygodni, wtedy kliknie.

          3