Simple way to create a singleton class.
Project description
Simple Python Singleton pattern
This module provides a simple way to define a class as a singleton.
Install
You can install this python module via pip:
pip install simple-singleton
Otherwise the module can be downloaded from PyPI: https://pypi.org/project/simple-singleton/
Usage
- Import the module:
from simple_signleton import Singleton
or:from simple_signleton import SingletonArgs
- Create a class that uses one of the above meta classes:
class NewClass(metaclass=Singleton): pass
or:class NewClass(metaclass=SingletonArgs): pass
Difference between Singleton
and SingletonArgs
The Singleton
class is a very basic implementation of the singleton pattern. All instances of a class are equal. Even if they are initialized with different parameters:
instance1 = SingletonClass(param="value")
instance2 = SingletonClass(param="different_value")
assert instance1 == instance2 # True
print(instance2.param) # "value"
If you do not want this behavior, use the SingletonArgs
meta class. With this class only instances that are initialized with the same parameters are the equal:
instance1 = SingletonArgsClass(param="value")
instance2 = SingletonArgsClass(param="different_value")
instance3 = SingletonArgsClass(param="value")
assert instance1 == instance2 # False
assert instance1 == instance3 # True
print(instance2.param) # "different_value"
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
simple-singleton-1.2.1.tar.gz
(15.3 kB
view hashes)
Built Distribution
Close
Hashes for simple_singleton-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e00398c6ac48f4c853fbb3e9103f6568f32fd1963f7cf3f6f167f878e68001b1 |
|
MD5 | b91a6d873166a844ffb84be2651ae0b1 |
|
BLAKE2b-256 | 77846ff21be9d99638e0a7704030b96a91d6750edac7da3f54acea1c585356bc |