der satz war mir bei dookie schon net klar:
wie konkret nehme ich den objekten die möglichkeit zu reagieren?Hier würde ich nur auf Dookies Argument evrweisen, dass man Objekten die Möglichkeit geben sollte, auf Einflussnahme zu reagieren
mfg
rolgal
wie konkret nehme ich den objekten die möglichkeit zu reagieren?Hier würde ich nur auf Dookies Argument evrweisen, dass man Objekten die Möglichkeit geben sollte, auf Einflussnahme zu reagieren
Code: Alles auswählen
__str__
Das ist halt die flexibilität von Python. Wenn du nur schnell was hinhackst kannst du auch alte Klassen nutzenMilan hat geschrieben:Es ist einfach praktischer "echtes" OOP zu machen, da wie oben schon geschrieben bei Änderungen kein Mehraufwand dadurch entsteht, dass ich alle aufrufenden Programmteile ändern muss.
Code: Alles auswählen
>>> from utils import Bruch as B
>>> a=B(1,1)
>>> a2=a*0.5
>>> a2.gettuple()
(1L, 2L)
>>> a.z=0.5
>>> a.gettuple() # (1/2) ist ja formal dasselbe wie (0.5/1)
(0.5, 1L)
>>> b2=a2+1
>>> b=a+1
>>> b2.gettuple(),b.gettuple() # aber siehe da... meine Klasse meint etwas anderes
((3L, 2L), (1L, 1L))
Code: Alles auswählen
#ohne Klasse, nur um das Prinzip zu zeigen
def set_z(z):
z=z*B(1,1)
self.z,self.n=z.gettuple()
z=property(fset=set_z)
ich hoffe, dass der zynismus in diesem und in einem deiner einleitenden sätze eine einbildung meiner müdigkeit ist.
So, ich hoffe mal deine Weltanschauung wenn nicht gerade gerückt, so wenigstens erschüttert zu haben.
erinnert mich sehr an viele situationen meiner nunmehr 16jährigen gitarristischen laufbahn:Natürlich kannst du jetzt sagen, die Klasse war nicht für Gleitkommazahlen gedacht, da kann (1/2) ist ja formal dasselbe wie (0.5/1) dasselbe sein wie es will. Nur... woher weiß man das, wenn man den Quellcode nicht selber geschrieben hat?
ich sagte ja schon : in 9 von 10 fällen hat sich das als methode zum selbstzweck erwiesen.natürlich kannst du das hier jetzt so lösen, aber was wenn du mal ein stück spielst, in dem .....dann hast du das jetzt schon gelernt.