python-dependency-injector/examples/providers/factory_init_injections.py
Roman Mogylatov 0bb30f91ef
Singleton docs update (#288)
* Update docblocks of factory provider examples

* Edit singleton docs
2020-09-01 16:04:48 -04:00

37 lines
784 B
Python

"""`Factory` provider init injections example."""
from dependency_injector import providers
class Photo:
...
class User:
def __init__(self, uid: int, main_photo: Photo) -> None:
self.uid = uid
self.main_photo = main_photo
photo_factory = providers.Factory(Photo)
user_factory = providers.Factory(
User,
main_photo=photo_factory,
)
if __name__ == '__main__':
user1 = user_factory(1)
# Same as: # user1 = User(1, main_photo=Photo())
user2 = user_factory(2)
# Same as: # user2 = User(2, main_photo=Photo())
# Context keyword arguments have a priority:
another_photo = Photo()
user3 = user_factory(
uid=3,
main_photo=another_photo,
)
# Same as: # user3 = User(uid=3, main_photo=another_photo)