[Python-de] Abhängigkeit zwischen abgeleiteter Klasse und Basisklasse
Peter Otten
__peter__ at web.de
Di Apr 3 11:13:08 CEST 2012
Wagner, Frank wrote:
> Ich hab mir schon gedacht, dass es ohne Code nicht so richtig gehen wird.
> Das Versenden des Codes ist mir allerdings eigentlich nicht gestattet.
Der übliche Ausweg ist es, analogen Code zu veröffentlichen, der das Problem
aufweist, aber nichts über den eigentlichen Kontext verrät.
Ich habe vor kurzem einen Verweis auf eine gute Zusammenfassung (englisch)
gesehen: http://sscce.org/
> Da ich aber nun den Thread gestartet habe und diesen nicht weiter
> verfolgen würde wäre das ja alles um sonst gewesen.
> Aus diesem Grund habe ich mich entschlossen ihnen die beiden
> Klassendefinitionen hier anzuhängen. Allerdings werde ich ihnen dies nur
> als pm schicken und nicht an die komplette Liste.
>> class A:
>> def __init__(self):
>> self.checkboxstate = CBS()
>>
>> class B(A):
>> pass
> Dies entspricht im Prinzip meiner Umsetzung.
Nicht ganz, eher
>>> class A:
... def __init__(self, cbs):
... self.checkboxstate = cbs
...
>>> class B(A):
... pass
...
>>> cbs = {}
>>> a = A(cbs)
>>> b = B(cbs)
>>> a.checkboxstate["on"] = True
>>> b.checkboxstate
{'on': True}
I hoffe, du bekommst keinen Ärger, wenn ich einen Schnipsel hier zitiere:
class DiagramDialog(wx.Dialog):
def __init__(self, parent, id, title, style_map, ...):
...
self.stylemap = style_map
...
self.Bind(wx.EVT_CHECKBOX, self.onClickENautoscale,
self.en_autoscale_cb)
def onClickENautoscale(self, event):
self.stylemap["en_autoscale"] = self.en_autoscale_cb.GetValue()
...
Du lieferst den entsprechenden Code nicht mit, aber ich vermute, dass du
beide Dialoge mit dem selben style_map dict initialisierst. In diesem Fall
wäre ein einfacher Fix
self.stylemap = style_map
zu ersetzen durch
self.stylemap = dict(style_map)
Mehr Informationen über die Mailingliste python-de