On Thursday, August 22, 2013 5:00:38 PM UTC-5, Bitswapper wrote: > On Thursday, August 22, 2013 4:26:24 PM UTC-5, Prasad, Ramit 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 > > > > > > > > > > > > > > def __repr__(self): > > > > > > > return "Map " + self.mapName + " rule number " + str(self.number) > > > > > > > > > > > > > > if __name__ == "__main__": > > > > > > > map = Map("thismap") > > > > > > > rule = Rule(1) > > > > > > > map.rules[rule.number] = rule > > > > > > > > > > > > > > > > > > > > > > > > > > > > with the above: > > > > > > > $ python -i inherit.py > > > > > > > >>> map > > > > > > > <__main__.Map object at 0xb7e889ec> > > > > > > > >>> map.rules > > > > > > > {1: Map rule number 1} > > > > > > > >>> map.rules[1] > > > > > > > Map rule number 1 > > > > > > > >>> > > > > > > > > > > > > > > > > > > > > > I have tried adding: > > > > > > > map.rules[2] = Rule(2) > > > > > > > > > > > > > > but that still gets: > > > > > > > > > > > > > > $ python -i inherit.py > > > > > > > >>> map.rules > > > > > > > {1: Map rule number 1, 2: Map rule number 2} > > > > > > > >>> > > > > > > > > > > > > > > and: > > > > > > > map.rule = Rule(3) > > > > > > > > > > > > > > which also doesn't really get me what I'm looking for: > > > > > > > > > > > > > > >>> map.rules > > > > > > > {1: Map rule number 1, 2: Map rule number 2} > > > > > > > >>> map.rule > > > > > > > Map rule number 3 > > > > > > > >>> > > > > > > > > > > > > > > > > > > > > > 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. > > > > > > > > > > > > > > Any thoughts are welcome, and thanks in advance > > > > > > > > > > > > I not sure what you mean by the above. Can you provide an example of what > > you want to occur and the output for it? > > > > > > > I was thinking of: > > > > map = Map('myMap') > > map.rules[1] = Rule(1) > > map.rules[2] = Rule(2) > > > > >>> print map.rules[1] > > >>> Map myMap rule number 1 > > >>> print map.rules[2] > > >>> Map myMap rule number 2 > > >>> > > >>> map.mapName = "newname" > > >>> print map.rules[1] > > >>> Map newname rule number 1 > > >>> print map.rules[2] > > >>> Map newname rule number 2
Or rather: map = Map('myMap') map.rules[1] = Rule(1) map.rules[2] = Rule(2) >>> print map.rules[1] >>> Map myMap rule number 1 >>> print map.rules[2] >>> Map myMap rule number 2 >>> >>> map.mapName = "newname" >>> print map.rules[1] >>> Map newname rule number 1 >>> print map.rules[2] >>> Map newname rule number 2 -- http://mail.python.org/mailman/listinfo/python-list