Döngü ile sınıf örneklemesi mümkün mü?

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?

Merhaba.

Bu nitelikler ne olacak?

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ı”

aşağıdaki olayı döngü ile sağlamak istiyorum

öğe1=tanımlananSınıf ()
öğe2=tanımlananSınıf ()
öğe3=tanımlananSınıf ()
öğe4=tanımlananSınıf ()
.
.
.
.

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.


@dildeolupbiten: Bir SSS hazirlamanin vakti geldi mi acaba?

1 Beğeni

@ismailarilik bu öneriyi bir değerlendirsin, uygun görürse sıkça sorulan sorular ile alakalı bir kategori oluşturulabilir.

Gormese de hazirlariz ki :slight_smile:

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.

Yani bunun için Duyurular gibi bir kategori oluşturmak gerekir mi diye düşündüm. Yoksa bir başlık işimizi görürse başlık da kullanabiliriz.

Son zamanlarda sorulan bazı sorular gerçekten araştırılmadan sorulmuş sorular gibi geliyor bana da. :slight_smile:

“98 kere yazdik, bi aratir misin” cevabiyla sorunu olmayanlarin 99. kere sormasinin bir sorunu yok bence. “SSS vardi da ben mi bakmadim” dese ne deriz :slight_smile:

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

Şöyle bir örnek vereyim.

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…

1 Beğeni

Örneğini vermeye çalıştım :slight_smile:

Benim şahsi fikrim şu arkadaş denemiş olmamış o zaman ya çözümünü atacaksın ya da ufaktan algoritmasından bahsedeceksin.

Tamam, örnek vermede bir sakınca yok ki zaten. Daha önce cevabı verilmiş bir soru olduğu için link verdim ben de.

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.

1 Beğeni

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 :slight_smile: (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 :slight_smile:

1 Beğeni

Yardımcı olduğuma çok mutlu oldum. :slight_smile:

Comphrension yapıları cidden hem kodu kısaltıyor hem de okunabilirliği arttırıyor.

Forumda SSS kısmı zaten var ve düzenlenebiliyor: Döngü ile sınıf örneklemesi mümkün mü?

Bunu kullanıcıları karşılayan konuya ekleyeyim.