Extension without sub-classing?
Andrew Bennetts
andrew-pythonlist at puzzling.org
Mon Jun 2 22:29:56 EDT 2003
On Tue, Jun 03, 2003 at 02:17:35AM +0000, Martin d'Anjou wrote:
> Is it possible to extend a python class without sub-classing?
>
> For example, in file1.py
>
> class car:
> def start_engine(self):
> print "Started"
>
> And in file2.py, continue the declaration of the car class, without
> specializing it:
>
> extend car:
> def apply_breaks(self):
> print "You have stopped"
>
> I know the "extend" syntax is wrong, but I want to extend "car" without
> sub-classing. Is this possible and how?
You can't directly, but you can do:
from file1 import car
def apply_breaks(self):
print "You have stopped"
car.apply_breaks = apply_breaks
Or, perhaps more conveniently, you could extend this to:
from file1 import Car
class CarContinued:
def apply_breaks(self):
print "You have stopped"
# ...etc...
Car.__dict__.update(CarContinued.__dict__)
-Andrew.
More information about the Python-list
mailing list