[Tutor] Const on Python

Tiago Katcipis katcipis at inf.ufsc.br
Thu Mar 6 01:54:59 CET 2008

Thanks for the help John. I agree with you that the programmer is 
already a grow person and should know when he can modify a attribute 
:-). Instead when other people will be able to continue to develop on 
the code i writed the const would give confidence that someone would not 
mess with my constants... i dont think its really necessary the const, 
but if it exists i would use...if dont exists....ok. Looking forward to 
go on developing on python and have more questions, hope that they will 
be better than this one :-).

Again thanks for the help

best regards


John Fouhy escreveu:
> On 06/03/2008, Tiago Katcipis <katcipis at inf.ufsc.br> wrote:
>>  learning. Im used to develop on c++ and java and i wanted to know if
>>  there is any way to create a final or const member, a member that after
>>  assigned cant be reassigned. Thanks to anyone who tries to help me and
>>  sorry to bother with a so silly question. i hope someday i can be able
>>  to help :-)
> The short answer is: "Not really".
> Actually, with recent versions of python, you could do something with
> properties.  e.g.:
>>>> class MyClass(object):
> ...     def fget_FOO(self):
> ...         return 'foo'
> ...     FOO = property(fget=fget_FOO)
> ...
>>>> x = MyClass()
>>>> x.FOO
> 'foo'
>>>> x.FOO = 'bar'
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> AttributeError: can't set attribute
> property() takes up to three arguments: get, set, and docstring.  In
> this case, I omitted the setter.  Thus python doesn't allow me to set
> that attribute.  You could also mess around with getattr() to achieve
> a similar effect.
> Generally, though, python takes the attitude that programmers are
> adults capable of thinking for themselves, and if you're silly enough
> to reassign a constant, you deserve whatever you get.  Best just to
> make your variable names ALL_CAPS and write documentation saying
> they're constant :-)
> See also this recipe:
> http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65207
> for another take on the issue.

More information about the Tutor mailing list