Simple Observer Pattern implementation
Project description
observer-pattern
Simple Observer Pattern Implementation
from observer_pattern import Observable
counter = 0
def plus_n(n):
global counter
counter += n
def plus_2n(n):
global counter
counter += 2*n
def plus_3n(n):
global counter
counter += 3*n
observable = Observable()
observable.subscribe(plus_n)
observable.subscribe(plus_2n)
observable.subscribe(plus_3n)
observable.notify(2)
observable.unsubscribe(plus_3n)
observable.notify(5)
print(counter) # 27
print(len(observable)) # 2
You can pass any number of args and kwargs
def print_product(a, b):
print(a * b)
observable = Observable()
observable.subscribe(print_product)
observable.notify(3, b=5) # 15
print(print_product in observable) # True
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
observer_pattern-1.0.0.tar.gz
(14.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file observer_pattern-1.0.0.tar.gz.
File metadata
- Download URL: observer_pattern-1.0.0.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c045e42434b0462507ef7000cf54c1cd2c2f02f02d804a59e6866d2fe54071ac
|
|
| MD5 |
6fcb9ed54de2a1c53b381dbd15954149
|
|
| BLAKE2b-256 |
ca83708013ca685377e3883ca521e221a54871aaa0403275017159548b4c2bf0
|
File details
Details for the file observer_pattern-1.0.0-py3-none-any.whl.
File metadata
- Download URL: observer_pattern-1.0.0-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2903f0075dca46efd446f8996d78770d65966a6b1ab26a2f530c9c6fc5f715b9
|
|
| MD5 |
12e8b0eaa2498f0ea370ca64649acf67
|
|
| BLAKE2b-256 |
39affcf790b0200f3304d94e69952cd5c3a2ddb940c1cd2cf514e7a5d6426087
|