Bir classtan list olarak inherit class

selamlar;
şöyle bir yapı nasıl yaparım.

class a:
  def __init__(self,name=str,id=int)
    self.name = name
    self.id = id
class b:
  als = []
  def __init__(self,aa=a,name=str)
    self.aa = aa
    self.name = name
    self.__class__.als.append(aa)
a1 = a("deneme1",1)
a2=a("deneme2",2)
abc = b(a1,"")
abc = b(a2,"ad2") 

yukardaki ile a1 ve a2 classında oluşturduğum objeleri b tipindeki abc içindeki als’ye append etmek istiyorum.
bunu

x = []
x.append(a1)
x.append(a2)

olarakta yapabilirim fakat yukardaki gibi başka bir class içinde append etmek istiyorum. fakat beceremedim.
veya

class b(x=[a]):
  ????

gibi bir yapı var mıdır.
Özetle oluşturduğum bir classı farklı propertyleri olan başka bir classta n tane append edip kullanmak istiyorum.
teşekkürler.

1 Beğeni
class xxx:
  def __init__(self,x=[a],n=str):
    self.x = x
    self.n = n

evet yukardaki gibi oluyor. alternatif varsa onada bakabiliriz.

Sanki şu sıralar konuşulan @classmethod ile durumu çözebilirsiniz gibi geldi bana. b nesnesi içindeki als[] listesini bir classmethod ile doldurabilirsiniz belki. Bakmanızda fayda var.

Tam olarak oyle olmamis mi?

print(abc.als)
[<__main__.a object at 0x7f9cb34cbfd0>, <__main__.a object at 0x7f9cb34cbee0>]

Bu ne yapacak? Dinamik olarak sinif yaratmak icin type var ama problemleri duz sinif kullanarak cozmek cogu zaman cok daha basit oluyor.

Cozuldu mu yani sorun? Anlayamadim

2 Beğeni

Evet cozuldu tesekkurler