Python'da İç Fonksiyonlarla Çalışırken Karşılaşılan Nüanslar

Python'da sadece iç içe fonksiyonlar olmakla kalmaz, aynı zamanda bir fonksiyon başka bir fonksiyonu da döndürebilir. Örneğin, outer fonksiyonunun bir sonuç olarak inner fonksiyonunun kaynak kodunu döndürdüğünü varsayalım:

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

  return inner

Hadi outer çağrısını res değişkenine kaydedelim:

pythonres = outer()
print(res)

Kod çalıştırıldıktan sonra fonksiyonlu bir nesne yazdırılacak:

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

Eğer res değişkeni parantezlerle birlikte çağrılırsa, '+++' mesajı dönecektir:

pythonprint(res()) # '+++' yazdıracak

Kodu, res içine outer'ın kendisini ve inner fonksiyonunu çağırmak için iki parantezle kaydedilecek şekilde yeniden yazabiliriz. Buradan çıkarılacak sonuç, dış fonksiyonun sağına, içine yerleştirilmiş fonksiyonların sayısına göre ek parantezler eklenebileceğidir:

pythonres = outer()()
print(res) # '+++' yazdıracak
Задание 1

Aşağıdaki kod verilmiştir:

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

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

Konsola ne yazdırılacağını söyleyin.

Задание 2

Aşağıdaki kod verilmiştir:

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

  return inner
  
res = outer()
print(res)

Konsola ne yazdırılacağını söyleyin.