Skip to main content

Simple Python classproperty decorator

PyPI package

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: TODO

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"

But when the value of the property is changed from an instance object, only the instance has this value:

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

When deleting the property from the instance, the class value is used again:

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

del instance.attr
print(instance.attr)  # "val"

Metadata

Release files for simple-classproperty 1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simple-classproperty 1.0
File Size Uploaded
simple-classproperty-1.0.tar.gz 3.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simple-classproperty 1.0
File Interpreter ABI Platform
simple_classproperty-1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.1 kB

Release files / simple-classproperty-1.0.tar.gz

Download URL simple-classproperty-1.0.tar.gz
Size 3.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c72a649c3aed2c5d04a415b66d8a565dbb81019bdd96334625648870a63bacc5
BLAKE2b-256 checksum
How to use checksums
7dc9f86b2a5d03381cbc9cf501712380ed29d678641dec55f4718893817aed55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.5.9

Release files / simple_classproperty-1.0-py3-none-any.whl

Download URL simple_classproperty-1.0-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7673120537adc2735fcf44e75bc34a8216177456662588dae3d416eb029b5ab6
BLAKE2b-256 checksum
How to use checksums
23c7276ae60da7fd6adb0d47cea952ad990b264be4e7b18ffd8adca06bb7b13e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.5.9

Release history Release notifications | RSS feed

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.0.0

2 release files

2.0.0

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3

2 release files

1.2

2 release files

1.1

2 release files

1.0.2

2 release files

1.0.1

2 release files

This release

1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page