Fonksiyona parametre ekleyen bir fonksiyon yazabilir miyiz?

İsimsiz bir fonksiyona parametre ekleyen bir fonksiyon mesela?

Orneğin

Liste=[1,2,3,4]
def func(*arr):
    return sum(arr)
print(func(arr)) 
#burada mesela, fonksiyonu yazarken, harici olarak, ya da bu işlem
#yazma olmadan önce mesela, parametre ekleye bilir miyiz?
#isimli, isimsiz fonksiyon farketmez.

Liste=[1,2,3,4]
def func(*arr):
    return sum(arr)

def arrekle():
    #burası
print(func(arr))

Sorun yerine cozum denemesini yazmissin sanirim; yukaridaki kod ile asagidaki kod ayni, soru anlasilmiyor.

Bu tur sorulari kullanan tarafin perspektifinden sorman lazim.

foo(1) #2
foo(1, 2) #ArgumentError
foo = bisiyYap(foo)
foo(1) #ArgumentError -- bozuldu
foo(1, 2) #3 -- duzeldi

Edit: Mesajin tonunu duzelttim, guzel ornek olsun insanlara.

Yahu aynı ben ikincisini nasil bir sey sorduğumu betimlemek için yazdım, yani fonksiyon belli argümanları almış listeden. İşlem yapmış, yazmış. Ama yazmadan önce diyelim argümanlara bir tana daha argüman eklemek ya da çikarmak gibi bir işlemden bahsediyorum. Valla elimden geldiğince betimlediğimi düşünüyorum.
Yalnız dikkat çekmek istiyorum. Liste üzerinden işlem yaparak değil, func fonksiyonunu etkilemekten bahsediyorum.

Anlama kapasitesi benden daha yuksek biri cevaplar o zaman; ben anlamadim :man_shrugging:

1 Beğeni

Bir fonksiyon yazdım. Aldığı argümanları topluyor. Gordüğün gibi.
Sonra print ile toplamı yazıyor.
Ben de diyorum ki, bir fonksiyon daha yazacağım print ile toplama fonksiyonu arasına, yani çıktı almadan önce. O aradaki fonksiyon, toplama fonksiyonunun argümanını etkileyecek. Mesela bir argüman daha ekleyecek.
Diyelim ki

def argumanekle(*arguman):
    func().append(arguman)#elbette append olmayacak, buna benzer bir şey diyorum)
#Ve mesela print(func(liste)) yapmadan önce
func().argumanekle(5)
#Gibi bir şey yapacağim, böylece sonuç yukarıdaki listeye göre 
#10 değil, eklenen 5 ile birlikte  15 olacak.

hocam sanırım anladığım şey şu bir fonksiyon tanımlayıp içerisine belirttiğiniz parametreyi
başka bir fonksiyon tanımlayarak önceki fonksiyonun parametresini değiştirmek? Umarım yanlış anlamamışımdır

Aynen deģiştirirken, o fonksiyonu yeniden tanımlamak değil, gerçi öyle de işe yarar. Yani içine fazladan parametre eklemek.

Şuraya bakarmısın

Burayada bi bak

1 Beğeni

https://docs.python.org/3/library/functools.html#functools.partial

1 Beğeni