On 23-12-2015 13:58, Chris Angelico wrote: > On Wed, Dec 23, 2015 at 11:46 PM, Neal Becker <ndbeck...@gmail.com> wrote: >> Sometimes I want to collect attributes on an object. Usually I would make >> an empty class for this. But it seems unnecessarily verbose to do this. So >> I thought, why not just use an Object? But no, an instance of Object >> apparantly can't have an attribute. Is this intentional? > > Yes; there are other uses of object() that benefit from being > extremely compact. You can use types.SimpleNamespace for this job, or > you can create the empty class as you're describing. (Chances are you > can give the class a meaningful name anyway.) > > ChrisA >
Hey, nice, didn't know about SimpleNamespace. I was about to suggest collections.namedtuple but that one is probably more than Neal asked for. Alternatively, you can still put attributes on a function, so this works as well (but I think it's rather ugly): thing = lambda: None thing.attr = 42 vars(thing) # {'attr': 42} -irmen -- https://mail.python.org/mailman/listinfo/python-list