Injector¶
-
class
clink.com.
Injector
[source]¶ Object management
-
add_prim
(com_obj)[source]¶ Put an instance of component under management. Instance MUST be primitive
Parameters: com_obj (clink.com.Component) –
Raises:
-
add_com
(com_type)[source]¶ Put an component under management
Parameters: com_type (class) – Raises: ComExistError –
-
Example¶
from clink.com import Injector, Component, Primitive, stamp
@stamp()
class Engine(Primitive):
def __init__(self, name):
self.name = name
@stamp(Engine)
class Car(Component):
def __init__(self, engine):
self.engine = engine
def info(self):
return 'A car with %s engine' % self.engine.name
@stamp(Car)
class Human(Component):
def __init__(self, car):
self.car = car
def drive(self):
print('I drive %s' % self.car.info())
engine = Engine('Turbo v8')
injector = Injector()
injector.add_prim(engine)
injector.add_com(Human)
injector.load()
car = injector.ref(Car)
print(car.info())
human = injector.ref(Human)
human.drive()
Testing¶
$ python injector.py
A car with Turbo v8 engine
I drive A car with Turbo v8 engine