I am new to python and apologize in advance if this is too bad.
Suppose i dynamically make an object an attribute of another object. Can the assigned as an attribute object access the assigned to object's other attributes without inheritance or passing as an argument?
e.g:-
class human:
    def __init__(self):
        self.health = 100
class fire:
    def __init__(self):
        self.fire = 10
    def damage(self):
        ????.health -= self.fire   #can i do anything to get bill's health?
bill = human()
bill.fired = fire()
bill.fired.damage()   #the fired object wants to know the bill object's health
I know i can pass bill's health as an argument to the damage function:-
class human:
    def __init__(self):
        self.health = 100
class fire:
    def __init__(self):
        self.fire = 10
    def damage(self, obj):
        obj.health -= self.fire
bill = human()
bill.fired = fire()
print bill.health
bill.fired.damage(bill)   #now the fired object knows bill's health
print bill.health   #works fine
But is there any other way or is this a dead end? Apart from the inheritance. (I'm using python v2.7, but of course would like to know v3 solution too)
Once again i apologize if this question is too bad or has been answered. I tried to read this one Can an attribute access another attribute?, but i couldn't understand it, its too complex. And if i google this question the results only lead to "How to access objects attributes" e.g this https://www.geeksforgeeks.org/accessing-attributes-methods-python/. And this one How to access attribute of object from another object's method, which is one of attributes in Python? uses inheritance.
