from tkinter import * class Takistuskomponent: tegelikPinge=0 tegelikVool=0 klemm1x=100 klemm1y=50 klemm1d=20 def joonista(self, ala, ux, uy): self.ala=ala self.klemm1x=ux self.klemm1y=uy self.klemm1=ala.create_oval(self.klemm1x, self.klemm1y, self.klemm1x+self.klemm1d, self.klemm1y+self.klemm1d) self.tekst=ala.create_text(self.klemm1x, self.klemm1y, text=str(self.tegelikVool)) def kysiTakistus(self): raise Exception("k2sku pole siin veel olemas") def muudaPinge(self, uusPinge): self.tegelikPinge=uusPinge self.tegelikVool=uusPinge/self.kysiTakistus() def muudaVool(self, uusVool): self.muudaPinge(uusVool*self.kysiTakistus()) def kysiPinge(self): return self.tegelikPinge def kysiVool(self): return self.tegelikVool class Takisti(Takistuskomponent): takistus=0 maksV6imsus=0 def __init__(self, takistus, maksV6imsus): self.takistus=takistus self.maksV6imsus=maksV6imsus def kysiTakistus(self): return self.takistus class Jadayhendus(Takistuskomponent): andmed=[] def lisaKomponent(self, uus): self.andmed.append(uus) def kysiTakistus(self): return sum([t.kysiTakistus() for t in self.andmed]) def muudaPinge(self, uusPinge): #super(Jadayhendus, self).muudaPinge(uusPinge) Takistuskomponent.muudaPinge(self, uusPinge) vool=self.kysiVool() for t in self.andmed: t.muudaVool(vool) aken=Tk() ala=Canvas(aken) ala.pack() t=Takisti(5, 2) j=Jadayhendus() j.lisaKomponent(t) j.lisaKomponent(Takisti(3, 1)) j.muudaPinge(10) print(str(j.kysiTakistus())+" "+str(j.kysiPinge())+" "+str(j.kysiVool())) print(str(t.kysiTakistus())+" "+str(t.kysiPinge())+" "+str(t.kysiVool())) j.joonista(ala, 200, 100) aken.mainloop()