**dict yazarak bir fonksiyona:
**{"a":"value"} function(a = "value")
şeklinde değer gönderebiliyorduk peki bir sözlükle bir fonksiyona
function(a == 5)
gibi değerleri iletebilmemizin bir yolu var mı?
**dict yazarak bir fonksiyona:
**{"a":"value"} function(a = "value")
şeklinde değer gönderebiliyorduk peki bir sözlükle bir fonksiyona
function(a == 5)
gibi değerleri iletebilmemizin bir yolu var mı?
Bunu bir sözlük üreteci kullanarak yapabilirsiniz:
dict = {"a": "value"}
yeni = {i: bool(dict[i]) for i in dict}
Daha sonra yine bir sözlük gibi kullanabilirsiniz.
Ilk ornekteki a
, fonksiyonun parametresinin ismi ve =
isareti onu arguman olarak verilecek degerden ayirmak icin kullaniliyor.
Ikinci ornekte ise arguman olarak verilen tek bir deger var; uc oge de bir ifadenin parcasi. a
mevcut scope’taki isim cozumu kurallarina gore degeri cozulecek bir isim, ==
ise bir operator.
Yani yapmak veya elde etmek istedigin seyi ilk formdan bagimsiz olarak sorman daha faydali olabilir.
nasıl yani hocam açıkçası anlayamadım
^^^ Bu sorunun,
^^^ bu bilgiyle hic bir alakasi yok.
peki 2. şekilde bir yöntem için yani bir sözlükle bir fonksiyona o şekilde gönderebilmek için bir yol yok mu
Tam ornekle aciklarsan bulabiliriz. Birden fazla parametre ve sozluk elemani olsun lutfen.
hocam yapmak istediği şuydu bir sözlüğüm var ve bunu == şeklinde atmak birden fazla parametreyle örnek verecek olursak:
dic = {"param1":"value1" , "param2":"value2", "param3":"value"}
bu ifadeyi bir fonksiyona şu şekilde atmaktı:
my_f(param1 == “value1”,param2 == “value2”, param3 == “value4”)
burda benim kaçırdığımsa sizin dediğiniz gibi sandığım gibi bunun bir bool operatörü vs. olmamasıydı. printleyince fark ettim ki aslında bir obje oluşturuluyor. kendimce şu şekilde bir çözüm ürettim:
jsonDict = json.loads(request.form.get(“select”))
l =
for i in jsonDict.keys():
l.append(getattr(application.c,i) == jsonDict[i])
artık *l
ifadesini göndereceğim fonkisyon bunları algılayabilyo. teşekkürler
ve ayrıca fark ettim ki python’da bilmediğim daha çooook şey var…
Fonksiyonun *l
ile bir dizi arguman beklemektense tek bir dict veya list alip okumasi daha mantikli olabilir. Koda bakmadan konusuyorum tabi, olmaya da bilir.
Hepimizin bilmedigi cok sey var da en azindan is gormeye engel olmuyor
fonksiyonu ben yazmış olsam bunu kessinlikle yapardım:slight_smile:
Konu karışmış ama çok bilinmeyen konuyla biraz alakalı bir bilgi vereyim sözlük genişletmeyle ilgili…
dict1 = {"key1":"value1"}
dict2 = {"key2":"value2"}
yenidict = {**dict1,**dict2}
Bu şekilde elinde hazır bir dict varsa ikisini genişletebilirsin.