Merhaba,
Tanımladığım bir sınıftan, bir liste üzerinden döngü oluşturarak listedeki her bir öğe için örnekleme yapmak istiyorum. Nasıl yapılabileceğini bulamadım.
örneğin:
liste=[“öğe1”,“öğe2”,“öğe3”,“öğe4”…]
class tanımlananSınıf ():
nitelik1=…
nitelik2=…
nitelik3=…
for x in liste:
x= tanımlananSınıf()
x.nitelik1… # şeklinde niteliklerine erişmek istiyorum.
gibi bir döngü kurmak istiyorum.
(Tabii ki yukarıdaki kodlar çalışmıyor)
Çalışmama nedenini ve çözümünü öğrenmek istiyorum
Yardımcı olabilir misiniz?
Nitelik kelimesi simgesel bir tanım. Sınıfın niteliklerini temsil ediyor.
Elimde bir liste ve bir sınıf tanımı var.
Listedeki her öğeyi sınıf örneklemesinde kullanmak istiyorum;
liste=[“öğe1”,“öğe2”,“öğe3”,“öğe4”…]
class tanımlananSınıf ():
kıdem=“çalışan”
maaş=“5400 TL”
çalışmaŞekli=“Tam Zamanlı”
ancak liste üzerinden döngü kurduğumda liste öğelerini sınıf örneklemesi için kullanamıyorum.
for x in liste:
x=tanımlananSınıf ()
fstring ve format metotlarını da denedim.
for x in liste:
f"{x}" =tanımlananSınıf ()
veya
for x in liste:
“{}”.format(x) =tanımlananSınıf ()
şeklindeki kodlar da çalışmıyor
Bu arada girintili yazdığım satırlar buradaki mesajımda girintili olarak görünmüyor. Yazdığım kodlarda bu konuda hata yok.
Dongu ile sinif orneklemesi mumkun ve nasil oldugu da tam olarak yazdigin sekilde. Asil sordugun dongu icinde orneklenen siniflarin degisik degiskenlere atanmasi, degil mi?
Bunun genel cevabi su: yapmiyoruz, liste kullaniyoruz. Ayrintili bilgi icin bu forumu karistirabilirsin; siklikla sorulan bir soru.
Saka bir yana, yeni gelenlerin sorularina asina oldugun ve sabirla cevapladigin icin, kooperasyon icin sordum sana. Uygun gorurseniz buraya da koyariz linkini/sticky’sini, o ayri.
Du ben ayri bi baslik acayim buna, arkadasin soru konusunu yeterince odunc aldik.
Kimisi sıkça sorulan sorulara bakmadan doğrudan sorusunu soracaktır. Sağ üst köşede arama bölümü var ve gerçekten birçok kullanıcı tarafından sıklıkla kullanılıyor olsaydı, bazı sorulan sorular tekrar tekrar sorulmazdı.
Konulara bir göz gezdirmiştim (arama motorunu da kullandım) Belki de doğru kelimeleri kullanmadım.
Ama (takdir edersiniz) o kadar çok konu var ki, aradığın bilgiye ulaşmak zor. Haliyle ben de aradığımı bulamadım. Cevabın konu bilgisini biliyorsanız link paylaşın lütfen
oge = ["oge_1","oge_2"]
class Yazbel(object):
def __init__(self,name):
self.name = name
sozluk = {oges : Yazbel(oges) for oges in oge}
print(sozluk["oge_1"].name)
#Output
"oge_1"
Ben forumda bulunduğumdan beri bu sorudan 5-6 tane gördüğümü tahmin ediyorum ama sadece birini bulabildim. Çoğu sorunun başlığı da düzgün seçilmediği için bulmak isteyince bulamıyorsun…
Beni diyosan daha ziyade ileride de refere edebilecegimiz bir FAQ entry’si yazmakla ugrasiyordum: GitHub - aib/python-faq-turkish
@dildeolupbiten tonu kaba buldu, daha iyisini onerdi. 1-2 cevap daha yazip degisik stillerin tadina bakayim diyordum fakat @EkremDincel’in de gozlemledigi uzere bu tur sorulari arasan bile bulmak zor.
Ugrasip wiki’de ( Sıkça Sorulan Sorular (SSS) ) bir kismini listelediler, sagolsunlar, fakat oradaki sorular da Windows kurmadan yanitlanabilecek gibi degiller.
Soyle bir ornek vermememin sebebi list kullanmayi bilmeyen (veya list kullanmasi gerektiginin farkina varmamis) seviyedeki birine dict onermemek. (Inheritance ve dictionary comprehension’larini gecim bile.)
Sorunun asil cevabi olan vars/locals/globals kullanimini da ayni sebepten oturu yazmadim.
Sizi kastetmedim genel olarak foruma baktığımda insanlar bir şeyler söylüyor fakat karşı taraf da bunun farkında önemli olan programlama dili seviyesine indirmek.(pseudo code) değil.(Bir yer de pseudo code tabii önemli ama anladığım kadarıyla konuyu yazan kişi nasıl yapabileceğinin farkında.)
Kolay gelsin (Yanlış anlaşılmaya sebep olmak istemem.)
Tam olarak aradığım şey
Teşekkürler
Kod aşinalığım yeterince gelişmediği için kendime uyarlamak biraz uğraştıracak ama buna değecek.
(Hem bahane ile class konusunda kendimi geliştirmiş olacağım)
Bu arada;
sozluk = {oges : Yazbel(oges) for oges in oge}
bu tarz cümlelerin sadece liste yapıları oluşturmak için kullanıldığını sanıyordum.
Bir taşla kaç kuş vurdum