Jump to content

Python

  • entries
    53
  • comments
    0
  • views
    405

İç İçe (nested) Fonksiyonlar


Doğuhan ELMA

63 views

Python'da iç içe (nested) fonksiyonlar kullanabilmek, Python'ın sunduğu güçlü özelliklerden biridir. Bir fonksiyonu başka bir fonksiyonun içinde tanımlayabiliriz.

İç içe fonksiyonlar, genellikle şu durumlar için kullanılır:

Bir fonksiyonun içinde bir döngü veya karmaşık bir ifade tekrar tekrar kullanılıyorsa, bu döngüyü veya ifadeyi iç fonksiyon olarak tanımlamak kodun okunabilirliğini artırabilir.

İç fonksiyonlar, dış fonksiyondan gelen argümanlara erişebilirler. Bu, bazı durumlarda çok kullanışlı olabilir. Örneğin, iç fonksiyon, dış fonksiyondan gelen bir parametreyi kullanarak bir hesaplama yapabilir.

Aşağıda, bir iç içe fonksiyon örneği bulunmaktadır:

def outer_function(x):
    print(f'Outer function received: {x}')

    def inner_function(y):
        return y * x

    result = inner_function(10)
    print(f'Inner function returned: {result}')

outer_function(5)

Bu örnekte, outer_function, inner_function adında bir başka fonksiyonu tanımlar. inner_function, dış fonksiyondan x argümanını kullanır ve bu değeri y ile çarpar. Bu özellikle iç içe fonksiyonların gücünü gösterir: İç fonksiyonlar, dış fonksiyonun değişkenlerine ve parametrelerine erişebilirler.

İç içe fonksiyonların bir başka kullanımı da, bir fonksiyonun başka bir fonksiyonu döndürmesidir. Bu, fonksiyonların birinci sınıf objeler olduğu Python gibi dillerde son derece güçlü bir özelliktir. Aşağıda bir örneğini görebilirsiniz:

def outer_function(x):
    def inner_function(y):
        return y * x
    return inner_function

times_two = outer_function(2)
print(times_two(10))  # Output: 20

times_three = outer_function(3)
print(times_three(10))  # Output: 30

Bu örnekte, outer_function fonksiyonu inner_function fonksiyonunu döndürür. Bu sayede, x parametresi "hatırlanır" ve sonraki çağrılarda kullanılır. Bu teknik, "closure" (kapama) olarak bilinir ve oldukça kullanışlıdır.

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...