Passing new fields to an object

Paulo da Silva p_s_d_a_s_i_l_v_a_ns at netcabo.pt
Fri Jun 12 14:34:09 EDT 2015


On 12-06-2015 17:17, Peter Otten wrote:
> Paulo da Silva wrote:
> 
...

> 
>>>> import types
>>>> class C(types.SimpleNamespace):
> ...     pass
> ... 
>>>> c = C(f1=1, f2=None)
>>>> c
> C(f1=1, f2=None)
> 

Thanks for all your explanations.
This solution works. Would you please detail a little on how it works?
Or just point me out some readings.
I am confused because types.SimpleNamespace seems to be a class!
>From docs ...:
class SimpleNamespace:
    def __init__(self, **kwargs):
        self.__dict__.update(kwargs)
    def __repr__(self):
        keys = sorted(self.__dict__)
        items = ("{}={!r}".format(k, self.__dict__[k]) for k in keys)
        return "{}({})".format(type(self).__name__, ", ".join(items))
    def __eq__(self, other):
        return self.__dict__ == other.__dict__




More information about the Python-list mailing list