Skip to main content

Simple way to prevent direct creation of an instance of a class.

Project description

Simple Python Factory pattern

PyPI package PyPI version

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

  1. Import the module:

    from simple_factory_pattern import FactoryPatternMeta
    
  2. Create a class that uses the above meta class:

    class NewClass(metaclass=FactoryPatternMeta):
        pass
    
  3. 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 classmethods. 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

simple-factory-pattern-1.1.1.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

simple_factory_pattern-1.1.1-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file simple-factory-pattern-1.1.1.tar.gz.

File metadata

  • Download URL: simple-factory-pattern-1.1.1.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.6.13

File hashes

Hashes for simple-factory-pattern-1.1.1.tar.gz
Algorithm Hash digest
SHA256 ad4c2dfcb11dd7ddbce0c4f15a49e2c939e516edce00c61dd08537fcb59cbfa9
MD5 e0cec5a0b09dd41d5f8d9404569a48c9
BLAKE2b-256 24373a0999e6c481c535317bfdcf025cf62890ef87e403cc77d2617a1951691d

See more details on using hashes here.

File details

Details for the file simple_factory_pattern-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: simple_factory_pattern-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.4.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.6.13

File hashes

Hashes for simple_factory_pattern-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5261426c7100a5c86bf2d43e2c7ad6a3a2e1639aac6e0d856ab4f4efb9a1cc5c
MD5 c60bb7357099282cbecae47ce01b4bb5
BLAKE2b-256 d75b18137eec0c94bf6c6bc366dac561839d32fc05a5fa72cb8f66e2c64228f6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page