[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