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

Prasad, Ramit ramit.prasad at jpmorgan.com.dmarc.invalid
Thu Aug 22 17:26:24 EDT 2013


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?


~Ramit

This email is confidential and subject to important disclaimers and conditions including on offers for the purchase or sale of securities, accuracy and completeness of information, viruses, confidentiality, legal privilege, and legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email.  



More information about the Python-list mailing list