<p>我有一个基类的实例,然后我想让它成为这个基类的子类的实例。也许我把问题搞错了,在OOP中有一些重要的东西我不明白。代码只是用来说明的,可以提出一种非常不同的方法。感谢任何帮助。在</p>
<pre><code>class Car(object):
def __init__(self, color):
self.color = color
def drive(self):
print "Driving at 50 mph"
class FastCar(Car):
def __init__(self, color, max_speed=100):
Car.__init__(self, color)
self.max_speed = max_speed
def drive_fast(self):
print "Driving at %s mph" %self.max_speed
one_car = Car('blue')
# After the instanciation, I discovered that one_car is not just a classic car
# but also a fast one which can drive at 120 mph.
# So I want to make one_car a FastCar instance.
</code></pre>
<p>我看到一个非常相似的问题,但没有一个答案适合我的问题:</p>
<ul>
<li><p>我不想让FastCar成为汽车的包装,它会知道如何快速驾驶:我真的想要FastCar扩展汽车;</p></li>
<li><p>我真的不想使用FastCar中的<code>__new__</code>方法对参数进行一些测试,并决定<code>__new__</code>是否必须返回Car的新实例或我给它的实例(例如:<code>def __new__(cls, color, max_speed=100, baseclassinstance=None)</code>)。</p></li>
</ul>