83. attributes
— Attributes¶
This module defines a general class for adding extra attributes to other objects without cluttering the name space.
-
class
attributes.
Attributes
(data={}, default=None)[source]¶ A general class for holding attributes.
This class is a versatile dict class for objects that need a customizable set of attributes, while avoiding a wildly expanding name space.
The class has dict type and object/attribute type syntax. Furthermore, an instance can be called as a function to populate or update its contents. Giving an attribute the value None removes it from the dict. Any non-existing attribute returns None.
Parameters:
- data: a dict or any other object that can be used to initialize a
Dict
. This provides the data stored in the Attributes. - default: either another Attributes instance, or None. If another Attributes is specified, keys not existing in self will be looked up in default and that value will be returned.
Example:
>>> A = Attributes() >>> print(A) {} >>> A(color='red',alpha=0.7,ontop=True) >>> print(A) {'alpha': 0.7, 'color': 'red', 'ontop': True} >>> A.ontop = None >>> A.alpha = 0.8 >>> print(A) {'alpha': 0.8, 'color': 'red'} >>> B = Attributes({'color':'green'},default=A) >>> print(B) {'color': 'green'} >>> print(B.color,B.alpha) green 0.8 >>> A.clear() >>> print(A) {} >>> print(B.color,B.alpha) green None >>> B(color=None,alpha=1.0) >>> print(B) {'alpha': 1.0} >>> B['alpha'] = None >>> print(B) {}
- data: a dict or any other object that can be used to initialize a