File tree Expand file tree Collapse file tree 3 files changed +33
-2
lines changed Expand file tree Collapse file tree 3 files changed +33
-2
lines changed Original file line number Diff line number Diff line change @@ -32,6 +32,13 @@ factories:
3232- :ref: `factory-specialize-provided-type `
3333- :ref: `abstract-factory `
3434
35+ ``Singleton `` provider scope is tied to the container. Two different containers will provider
36+ two different singleton objects:
37+
38+ .. literalinclude :: ../../examples/providers/singleton_multiple_containers.py
39+ :language: python
40+ :lines: 3-
41+
3542Resetting memorized object
3643--------------------------
3744
Original file line number Diff line number Diff line change 1+ """`Singleton` provider resetting example."""
2+
3+ from dependency_injector import containers , providers
4+
5+
6+ class UserService :
7+ ...
8+
9+
10+ class Container (containers .DeclarativeContainer ):
11+
12+ user_service_provider = providers .Singleton (UserService )
13+
14+
15+ if __name__ == '__main__' :
16+ container1 = Container ()
17+ user_service1 = container1 .user_service_provider ()
18+ assert user_service1 is container1 .user_service_provider ()
19+
20+ container2 = Container ()
21+ user_service2 = container2 .user_service_provider ()
22+ assert user_service2 is container2 .user_service_provider ()
23+
24+ assert user_service1 is not user_service2
Original file line number Diff line number Diff line change @@ -19,5 +19,5 @@ class Container(containers.DeclarativeContainer):
1919
2020 container .user_service_provider .reset ()
2121
22- users_service2 = container .user_service_provider ()
23- assert users_service2 is not user_service1
22+ user_service2 = container .user_service_provider ()
23+ assert user_service2 is not user_service1
You can’t perform that action at this time.
0 commit comments