On 01/09/2018 07:30 AM, Steven D'Aprano wrote:
> If you have a class with only data, and you access the attributes via the
> instance's __dict__, why not use an ordinary dict?
Or even subclass dict.
class MyClass(dict):
VAR = 5
m = MyClass()
m['newvar'] = "Something"
I do this and wrap things like __getitem__, __call__, __del__, etc. with
my own methods. For example...
def __getitem__(self, key):
# return self.attribute if given "_attribute_" mapping
if key[0] == '_' and key[-1] == '_' and key[1] != '_':
k = key[1:-1]
if hasattr(self, k): return getattr(self, k)
return dict.__getitem__(self, key)
So, in the above example...
>>>print("newvar = '%(newvar)s', VAR = '%(_VAR_)s'" % m
newvar = 'Something', VAR = '5'
--
D'Arcy J.M. Cain
Vybe Networks Inc.
http://www.VybeNetworks.com/
IM:[email protected] VoIP: sip:[email protected]
--
https://mail.python.org/mailman/listinfo/python-list