mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2024-11-30 05:23:59 +03:00
43 lines
1008 B
ReStructuredText
43 lines
1008 B
ReStructuredText
|
Static providers
|
||
|
----------------
|
||
|
|
||
|
Static providers are family of providers that return their values "as is".
|
||
|
There are four types of static providers:
|
||
|
|
||
|
- ``Class``
|
||
|
- ``Object``
|
||
|
- ``Function``
|
||
|
- ``Value``
|
||
|
|
||
|
All of them have the same behaviour, but usage of anyone is predicted by
|
||
|
readability and providing object's type.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
"""`Static` providers example."""
|
||
|
|
||
|
from objects.providers import Class
|
||
|
from objects.providers import Object
|
||
|
from objects.providers import Function
|
||
|
from objects.providers import Value
|
||
|
|
||
|
|
||
|
# Provides class - `object`
|
||
|
cls_provider = Class(object)
|
||
|
assert cls_provider() is object
|
||
|
|
||
|
# Provides object - `object()`
|
||
|
object_provider = Object(object())
|
||
|
assert isinstance(object_provider(), object)
|
||
|
|
||
|
# Provides function - `len`
|
||
|
function_provider = Function(len)
|
||
|
assert function_provider() is len
|
||
|
|
||
|
# Provides value - `123`
|
||
|
value_provider = Value(123)
|
||
|
assert value_provider() == 123
|
||
|
|