Assign a value to a var content in an object

Chris Angelico rosuav at gmail.com
Mon Oct 11 18:06:49 EDT 2021


On Tue, Oct 12, 2021 at 9:03 AM Paulo da Silva
<p_d_a_s_i_l_v_a_ns at nonetnoaddress.pt> wrote:
>
> Hello!
>
> Is there a better way of doing this?
> Why didn't setattr (as commented) work?
>
> Thanks for an help/comments.
>
> class C:
>     def f(self,v):
>         #setattr(self,n,v)
>         self.__dict__['n']=v
>
> c=C()
> c.f(3)
> print(c.n)
>

Because setattr needs a string, just like the assignment to the
dictionary does. Try:

setattr(self, "n", v)

Or, since it's a constant:

self.n = v

ChrisA


More information about the Python-list mailing list