On Thu, Aug 22, 2013 at 3:26 PM, Prasad, Ramit
<ramit.pra...@jpmorgan.com.dmarc.invalid> wrote:
> Bitswapper wrote:
>>
>> So I have a parent and child class:
>>
>>
>> class Map(object):
>>     def __init__(self, name=''):
>>         self.mapName = name
>>         self.rules = {}
>>
>> class Rule(Map):
>>     def __init__(self, number):
>>         Map.__init__(self)
>>         self.number = number
>
> This means that rules will never have a name. I think you need
>       def __init__(self, name='', number=None):
>           Map.__init__(self, name)
>           self.number = number

No, that's still wrong.  The OP talks abut maps having names, not
rules having names.  Unless a Rule is-a Map, which sounds unlikely,
Rule should not be inheriting from Map in the first place.

>> It seems to me what I'm trying to do is link an arbitrary child instance to 
>> an arbitrary instance of a
>> parent class, which in this case would be handy  Because I'd like to 
>> populate a map with rules and
>> print the rules including the parent map name for each rule.  I'm just not 
>> sure how I would go about
>> doing this in python.

You'll need to keep a reference to the Map on each Rule instance.  So
instead of self.mapName you'll have self.map.mapName.  Your Rule class
should probably look something like this:

class Rule(object):
    def __init__(self, map, number):
        self.map = map
        self.number = number

And then when you construct it you'll need to tell it what map it belongs to:

    rule = Rule(map, 1)
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to