Can a child access parent attributes if that child added post-hoc as an attribute to the parent?

Bitswapper bithead0101 at gmail.com
Thu Aug 22 17:03:04 EDT 2013


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

    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




More information about the Python-list mailing list