Skip to main content

Provides a 'classproperty' decorator.

Project description

Simple Python classproperty decorator

PyPI package PyPI version

This module provides a simple way for defining class properties.

Install

You can install this Python module via pip:

pip install simple-classproperty

Otherwise the module can be downloaded from PyPI: https://pypi.org/project/simple-classproperty/

Usage

  1. Import the module:
    from simple_classproperty import ClasspropertyMeta, classproperty
    
  2. Create a class with a class property:
    class NewClass(metaclass=ClasspropertyMeta):
        _attr = "val"
    
        @classproperty
        def attr(cls):
            return cls._attr
    
    Don't forget to set the metaclass!
  3. (Optional) Define also a setter and deleter for the newly created class property (this works like the standard python property):
    @attr.setter
    def attr(cls, value):
        cls._attr = value
    
    @attr.deleter
    def attr(cls):
        del cls._attr
    

Tips

The classproperty is also accessible from an instance:

instance = NewClass()
print(instance.attr)  # "val"

When the value of the property is changed from an instance object, the class property will be changed. All other instances will have this new value:

instance1 = NewClass()
instance2 = NewClass()

instance1.attr = "new"

print(instance1.attr)  # "new"
print(instance2.attr)  # "new"
print(NewClass.attr)   # "new"

This behavior is the same when a property gets deleted from an instance.

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_classproperty-4.0.2.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

simple_classproperty-4.0.2-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file simple_classproperty-4.0.2.tar.gz.

File metadata

  • Download URL: simple_classproperty-4.0.2.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.7.17 Linux/6.2.0-1015-azure

File hashes

Hashes for simple_classproperty-4.0.2.tar.gz
Algorithm Hash digest
SHA256 71ba436fc868f540c1908ecb0ef78ce14ea6fb1320cf4addd84945fb92988d5f
MD5 bbb1a9501eec179f0145518d171174f7
BLAKE2b-256 6372f18598765a3a14fff37eb9daaf21f9907e5685afef57187bc9bda5cdcb20

See more details on using hashes here.

File details

Details for the file simple_classproperty-4.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for simple_classproperty-4.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ac13ae65df997257e72888fd3c875c97d711ae2b625ead93be28b7d79c8d0b7a
MD5 deda6bbaba8968b386ad075ed188ce42
BLAKE2b-256 0e9161e9f76d7afc991bee5c6bbb175e6c22c03ac4bf6aad5c0eaa82b6088757

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