[Baypiggies] What's the "Pythonic" way to access class attributes?

Craig Rodrigues rodrigc at freebsd.org
Tue Oct 11 13:51:34 EDT 2016


Hi,

In various Python libraries and projects, I have seen that Foo.bar = 10
is the preferred convention, since as you mentioned, there are no
private/protected
keywords in Python.

You may want to look at the Python attrs library, which offers some
interesting
ways to use classes with attributions:

https://glyph.twistedmatrix.com/2016/08/attrs.html
https://attrs.readthedocs.io

--
Craig

On Tue, Oct 11, 2016 at 2:29 AM, Braun Brelin <bbrelin at gmail.com> wrote:

> Hello all,
>
> I just wanted to get the list's opinion on something.
>
> Since Python doesn't really have the concept of private and protected
> attribute access protections a la Java or C++ (Yes, I know you can use
> the __ and _ prefixes to declare something private or protected in
> Python, but that really only does name-mangling on the attribute name
> rather than explicitly disallow access to the attribute from outside the
> class), is it better to still access the attribute directly a la
> Foo.bar = 10 or use a setter/getter approach like Foo.setBar(10)?
> It seems to me that option one is better, especially if I can use a
> descriptor with the attribute.
>
> Any thoughts?
>
> Thanks,
>
> Braun Brelin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20161011/aee25573/attachment.html>


More information about the Baypiggies mailing list