Skip to content

Instantly share code, notes, and snippets.

@RusselWebber
Created August 24, 2022 09:32
Show Gist options
  • Save RusselWebber/98378a015538efaeb7fd9e7927f0f959 to your computer and use it in GitHub Desktop.
Save RusselWebber/98378a015538efaeb7fd9e7927f0f959 to your computer and use it in GitHub Desktop.
class SharedResourceClass:
"""This could be any resource that you would like to share.
Perhaps because the class is slow to initialise or you want to track usage
"""
def __init__(self, initial_value: int) -> None:
self._shared_resource = initial_value
def access_shared_resource(self) -> int:
return self._shared_resource
def update_shared_resource(self, new_value: int) -> None:
self._shared_resource = new_value
def create_shared_resource(initial_value: int) -> SharedResourceClass:
return SharedResourceClass(initial_value)
def access_shared_resource(sr: SharedResourceClass) -> int:
return sr.access_shared_resource()
def update_shared_resource(sr: SharedResourceClass, new_value: int) -> str:
sr.update_shared_resource(new_value)
return f"Updated to {new_value}"
if __name__ == "__main__":
sr = create_shared_resource(10)
print(access_shared_resource(sr))
print(update_shared_resource(sr, 20))
print(access_shared_resource(sr))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment