Skip to main content

Private attribute decorator for Python classes

Project description

Private Attribute

Introduction

This package provide a way to create the private attribute like "C++" does.

Usage

This is a simple usage about the module:

from private_attribute import PrivateAttrBase

class MyClass(PrivateAttrBase):
    __private_attrs__ = ['a', 'b', 'c']
    def __init__(self):
        self.a = 1
        self.b = 2
        self.c = 3

    def public_way(self):
        print(self.a, self.b, self.c)

obj = MyClass()
obj.public_way()  # (1, 2, 3)

print(hasattr(obj, 'a'))  # False
print(hasattr(obj, 'b'))  # False
print(hasattr(obj, 'c'))  # False

Notes

  • All of the private attributes class must contain the __private_attrs__ attribute.
  • The __private_attrs__ attribute must be a sequence of strings.
  • You cannot define the name which in __slots__ to __private_attrs__.
  • When you define __slots__ and __private_attrs__ in one class, the attributes in __private_attrs__ can also be defined in the methods, even though they are not in __slots__.

License

MIT

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

private_attribute-1.0.5.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

private_attribute-1.0.5-py2.py3-none-any.whl (4.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file private_attribute-1.0.5.tar.gz.

File metadata

  • Download URL: private_attribute-1.0.5.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for private_attribute-1.0.5.tar.gz
Algorithm Hash digest
SHA256 f705b02e33310f0a910fb95f003c9f4ffd83a99aa999aa81ea3330960912d863
MD5 72b4d256d6a96a9e1febd89f888f80be
BLAKE2b-256 f21cef39cf71acd2499ac4db39bed082da8f473a08e29f3e5827d79956a6698c

See more details on using hashes here.

File details

Details for the file private_attribute-1.0.5-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for private_attribute-1.0.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7e65b82b78de9eb81e16962e9c4c7710e4be3caa3272896843ff9ffe0a0ccaba
MD5 fee76eba6b519e4e78192f51028db2bb
BLAKE2b-256 1abd34771c968ce8f07dcab17a46e75ec7a20853d91418f9d85572646785e8d1

See more details on using hashes here.

Supported by

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