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