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