首先我非常抱歉,如果这是一个错误的方式提出这个问题所以请不要扯掉我。我想要做的是与以下内容非常类似的事情。
class Driver:
def __init__(self):
self.kind = "Driver"
def class_of_driver(self):
if self.model == 'corvette':
print('fast')
class Car:
def __init__(self, brand, model, cost, color):
self.brand = brand
self.model = model
self.cost = cost
self.color = color
self.drivers = Driver()
我希望能够像这样创建对象:
corvette = Car('chevy','corvette','200','red')
然后ulitmately可以做类似的事情:
corvette.class_of_driver
或
corvette.class_of_driver()
并在此方案中获得快速的返回。我一直在弄乱这一小时,然后陷入困境。我知道我可以将自己传递给自己:
self.drivers = Driver(self)
但是,如果对象在将来发生变化,它当然不会反映出这种变化。
非常感谢任何建议,让我提前说谢谢。
答案 0 :(得分:3)
一种简单的方法是通过在实例化时将Driver对象传递给它来赋予Driver
Car
属性:
class Driver(object):
def __init__(self, car):
self.kind = "Driver"
self.car = car
def class_of_driver(self):
if self.car.model == 'corvette':
print('fast')
class Car(object):
def __init__(self, brand, model, cost, color):
self.brand = brand
self.model = model
self.cost = cost
self.color = color
self.drivers = Driver(self)
答案 1 :(得分:3)
当然可以。两个对象相互保持引用是相当常见的。这是一种方法:
<div class="first">
<div class="left"></div>
<div class="grid-break vert"></div>
<div class="right"></div>
</div>
<div class="grid-break hori"></div>
<div class="second">
<div class="left"></div>
<div class="grid-break vert"></div>
<div class="right"></div>
</div>