Python 使用创建对象的对象的引用创建对象

Python 使用创建对象的对象的引用创建对象,python,object,Python,Object,我有一个程序,其中一个对象创建另一个对象。但是,创建的第二个对象需要能够访问第一个对象。这可能吗 EG(伪码) 有没有一种严格的方法可以做到这一点 更新: 我不想继承这个类,我需要能够访问创建它的实际对象,因为从该类创建的每个对象都有不同的值 为什么不继承该类 class parentObject(): parentVar = 1 class childObject(parentObject): childVar = parentObject.parentVar >&g

我有一个程序,其中一个对象创建另一个对象。但是,创建的第二个对象需要能够访问第一个对象。这可能吗

EG(伪码)

有没有一种严格的方法可以做到这一点

更新:


我不想继承这个类,我需要能够访问创建它的实际对象,因为从该类创建的每个对象都有不同的值

为什么不继承该类

class parentObject():
    parentVar = 1

class childObject(parentObject):
    childVar = parentObject.parentVar

>>> x = childObject()
>>> print(x.childVar)
1
如果您将拥有该类的不同实例,则应按以下方式执行:

class parentObject(object):
    def __init__(self):
        self.parentVar = 1

class childObject(parentObject):
    def __init__(self):
        super(childObject, self).__init__()
        self.childVar = self.parentVar

>>> x = childObject()
>>> print(x.childVar)
1

为什么不继承这个类呢

class parentObject():
    parentVar = 1

class childObject(parentObject):
    childVar = parentObject.parentVar

>>> x = childObject()
>>> print(x.childVar)
1
如果您将拥有该类的不同实例,则应按以下方式执行:

class parentObject(object):
    def __init__(self):
        self.parentVar = 1

class childObject(parentObject):
    def __init__(self):
        super(childObject, self).__init__()
        self.childVar = self.parentVar

>>> x = childObject()
>>> print(x.childVar)
1

如果您想引用“父”类,但继承不合逻辑,请考虑将<>代码>“自我/代码>”发送到构造函数:

class Room:
    def __init__(self, name):
        self.name = name
        self.furniture = []

    def add_chair(self):
        self.furniture.append(Chair(self))

    def __str__(self):
        return '{} with {}'.format(self.name, self.furniture)


class Chair:
    def __init__(self, room):
        self.room = room
    def __str__(self):
        return 'Chair in {}'.format(self.room.name)


r = Room('Kitchen')
r.add_chair()
r.add_chair()

print r
print r.furniture[0]
输出:

Kitchen with [<__main__.Chair instance at 0x01F45F58>, <__main__.Chair instance at 0x01F45F80>]
Chair in Kitchen
带[,]的厨房
厨房里的椅子

< /代码> 如果您想引用“父”类,但继承不合逻辑,请考虑将<>代码>“自我/代码> >发送给构造函数:

class Room:
    def __init__(self, name):
        self.name = name
        self.furniture = []

    def add_chair(self):
        self.furniture.append(Chair(self))

    def __str__(self):
        return '{} with {}'.format(self.name, self.furniture)


class Chair:
    def __init__(self, room):
        self.room = room
    def __str__(self):
        return 'Chair in {}'.format(self.room.name)


r = Room('Kitchen')
r.add_chair()
r.add_chair()

print r
print r.furniture[0]
输出:

Kitchen with [<__main__.Chair instance at 0x01F45F58>, <__main__.Chair instance at 0x01F45F80>]
Chair in Kitchen
带[,]的厨房
厨房里的椅子

因为从该类创建的每个对象将具有不同的值。我不需要访问该类,但是对象..@chrishadleand,在这种情况下,我将更新我的应答,因为从该类创建的每个对象将具有不同的值。我不需要访问该类,但是对象..@chrishadleand,在这种情况下,我将更新我的回答是的,您确实希望继承该类。您希望子类继承这些值。是的,您确实希望继承该类。您希望子类继承这些值。