[Python-ideas] Composition over Inheritance
Chris Angelico
rosuav at gmail.com
Sat Oct 28 21:57:13 EDT 2017
More information about the Python-ideas mailing list
Sat Oct 28 21:57:13 EDT 2017
- Previous message (by thread): [Python-ideas] Composition over Inheritance
- Next message (by thread): [Python-ideas] Composition over Inheritance
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sun, Oct 29, 2017 at 12:46 PM, Soni L. <fakedme+py at gmail.com> wrote: > But you should be able to do things like > > car = object() > car[Engine] = SimpleEngine() > car.[Engine].kickstart() # calls kickstart method with an instance of > SimpleEngine as `self`/first argument and `car` as second argument. > # etc > > Which your decorator-based approach quite obviously doesn't let you. I think I follow what you're trying to do here. You want to have a way to refer to a subobject while letting it know about the parent. We already have something like that: when you call a function that was attached to a class, it gets to know which instance of that class you used to locate that function. Maybe there's a way to use descriptor protocol for this too? class SimpleEngine: def kickstart(self, caller): """*boot* Engine starts""" class Car: Engine = magic(SimpleEngine) car = Car() When you look up car.Engine, it remembers a reference to car. Then you look up any callable from there, and it automatically provides an additional parameter. I'm not sure how the details would work, but in theory, this should be possible, right? ChrisA
- Previous message (by thread): [Python-ideas] Composition over Inheritance
- Next message (by thread): [Python-ideas] Composition over Inheritance
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list