Nuancen beim Arbeiten mit inneren Funktionen in Python

In Python kann es nicht nur verschachtelte Funktionen geben, sondern eine Funktion kann auch eine andere zurückgeben. Zum Beispiel, lassen Sie die Funktion outer den Quellcode der Funktion inner als Ergebnis zurückgeben:

pythondef outer():
  def inner():
    return '+++'

  return inner

Schreiben wir den Aufruf von outer in die Variable res:

pythonres = outer()
print(res)

Nach der Ausführung des Codes wird ein Objekt mit der Funktion ausgegeben:

python<function outer.<locals>.inner at 0x000001564A212B90>

Wenn man die Variable res jedoch mit runden Klammern aufruft, wird die Nachricht '+++' zurückgegeben:

pythonprint(res()) # gibt '+++' aus

Man kann den Code so umschreiben, dass in res outer mit zwei runden Klammern geschrieben wird - um sich selbst und die Funktion inner aufzurufen. Daraus folgt, dass man zusätzliche runde Klammern rechts von der äußeren Funktion in der Anzahl der in ihr verschachtelten Funktionen schreiben kann:

pythonres = outer()()
print(res) # gibt '+++' aus
Задание 1

Gegeben ist der folgende Code:

pythondef outer():
  def inner(num):
    return num + 2

  return inner
  
res = outer()(3)
print(res)

Sagen Sie, was in der Konsole ausgegeben wird.

Задание 2

Gegeben ist der folgende Code:

pythondef outer():
  def inner(txt):
    return 'hello, ' + txt

  return inner
  
res = outer()
print(res)

Sagen Sie, was in der Konsole ausgegeben wird.