On 23-12-2015 13:58, Chris Angelico wrote:
> On Wed, Dec 23, 2015 at 11:46 PM, Neal Becker <[email protected]> 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