访问Python中引用实例的实例

时间:2015-05-10 08:01:13

标签: python

可能有一个我要求的名字,也许它最好通过一个例子来展示。假设我有这些课程:

class MonkeyCage(object):
    def __init__(self, dimensions, monkeys=None):
        self.dimensions = dimensions
        self.monkeys = monkeys

    def add_monkey(self, monkey):
        self.monkeys.append(monkey)


class Monkey(object):
    def __init__(self, name):
        self.name = name

假设我创建了一个带有MonkeyCage和第一个Monkey的动物园:

>>> dimensions = {'width': 100, 'height': 200, 'depth': 70}
>>> cage = MonkeyCage(dimensions) 
>>> monkey = Monkey("LaundroMat")

并将猴子添加到MonkeyCage:

>>> cage.add_monkey(monkey)

有没有办法 - 通过猴子实例 - 获得添加猴子的笼子的尺寸?

2 个答案:

答案 0 :(得分:2)

你必须以某种方式将父母传给猴子。例如。在add_monkey中,你可以设置set monkey.parent = self并以这种方式访问​​它。

答案 1 :(得分:1)

monkey添加到cage时,只需为其添加标记。

class MonkeyCage(object):
    def __init__(self, dimensions, monkeys=None):
        self.dimensions = dimensions
        self.monkeys = monkeys

    def add_monkey(self, monkey):
        monkey.cage_dimension = self.dimensions
        self.monkeys.append(monkey)


class Monkey(object):
    def __init__(self, name):
        self.name = name

然后,您可以通过cage

获取有关monkey.cage_dimensions的信息