Simple way to prevent direct creation of an instance of a class.
Project description
Simple Python Factory pattern
This module provides a simple way to prevent the direct creation of an instance of a class. Instead a classmethod
of this class can be used.
Install
You can install this python module via pip:
pip install simple-factory-pattern
Otherwise the module can be downloaded from PyPI: https://pypi.org/project/simple-factory-pattern/
Usage
-
Import the module:
from simple_factory_pattern import FactoryPatternMeta
-
Create a class that uses the above meta class:
class NewClass(metaclass=FactoryPatternMeta): pass
-
Add a
classmethod
to the new class that returns an instance of the class:@classmethod def create_instance(cls): return NewClass()
You can choose any name for the method. But it must be a
classmethod
!It's also possible to define multiple
classmethod
s. Only in those methods a new instance of the class can be created.
Behavior of the new class
It's not possible to create an instance of the class directly:
instance = NewClass() # this will fail
This throws a FactoryException
(also included in the simple_factory_pattern
package).
The only way to get an instance is to call the above definded classmethod
:
instance = NewClass.create_instance() # this works
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
Built Distribution
File details
Details for the file simple-factory-pattern-1.3.tar.gz
.
File metadata
- Download URL: simple-factory-pattern-1.3.tar.gz
- Upload date:
- Size: 15.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5201b9df49d428e3631efa6d9df97d6a4f4789aee5f2109724ef6ea4c8cda827 |
|
MD5 | 2cb69c418c324f74658d8f3c4352d7ba |
|
BLAKE2b-256 | 6fa6d5421fa7a4967b909109375b3b05a329176f5be2819e736536ce646d5da7 |
File details
Details for the file simple_factory_pattern-1.3-py3-none-any.whl
.
File metadata
- Download URL: simple_factory_pattern-1.3-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f2e0f786041430617fdf4154561353a746c105db4762a8fe5a11d2a63820bcb |
|
MD5 | d197d290975c0d0ddb21cfcb16a4fac0 |
|
BLAKE2b-256 | 578679780be261a43d166c24ea4aaca433d7cf88018bd1c9063958e2f0083638 |