On Sun, 23 May 2021 at 17:43, <2qdxy4rzwzuui...@potatochowder.com> wrote:
>
> On 2021-05-23 at 16:30:35 +0200,
> Marco Sulla <marco.sulla.pyt...@gmail.com> wrote:
>
> > On Sun, 23 May 2021 at 14:50, Chris Angelico <ros...@gmail.com> wrote:
> > >
> > > On Sun, May 23, 2021 at 10:42 PM Marco Sulla
> > > <marco.sulla.pyt...@gmail.com> wrote:
> > > >
> > > > On Sun, 23 May 2021 at 14:35, Chris Angelico <ros...@gmail.com> wrote:
> > > > >
> > > > > On Sun, May 23, 2021 at 10:30 PM Marco Sulla
> > > > > <marco.sulla.pyt...@gmail.com> wrote:
> > > > > >
> > > > > > I think the only reason to introduce something like `private` is
> > > > > > refactoring. If you added a `_variable` and later you decided to
> > > > > > expose it, you have to change it to `variable`. This is something 
> > > > > > that
> > > > > > in languages like Java is not necessary, you have only to change the
> > > > > > variable from private to public. This sometimes bothered me in 
> > > > > > Python.
> > > > >
> > > > > Since you started with it private, you should be able to solve this
> > > > > with a simple search-and-replace within the class's own definition.
> > > > > Nothing outside the class should be affected. If it's that hard to
> > > > > replace "self._variable" with "self.variable"
> > > >
> > > > And, in non-trivial cases, it is :)
> > >
> > > I'm curious as to what sort of non-trivial cases you have to deal
> > > with, where you have something harder than search-and-replace
> >
> > For example, having _variable in another class.
>
> Then it isn't/wasn't private.

I'm not saying _variable of the class A I want to rename is used by
the class B. I'm saying that there could exist another class B that
has a _variable with the same name. In this case, a simple search and
replace all will fail.

>
> > > Do you yearn for actual refactoring tools - which do exist?
> >
> > Renaming tools of IDE do not work in 100% of the cases. For example,
> > if you have _variable in an eval string, it's not replaced.
>
> Another reason not to use eval.

I completely agree, but the world is not perfect. Another example is
the use of the _variable in a f-string.

>
> > > Or maybe most Python programmers don't think in terms of private
> > > members, and it's easier to just make something public from the start.
> >
> > Naaaa, I see private vars used a lot. It's @property that, it seems to
> > me, is used sporadically.
>
> I suspect that I am not "most Python programmers,", but I always think
> of state (aka members, variables, attributes) as private and internal.
> If I think I need to reach into an application level object for its
> state (to read it or to write it), or that I need a getter, let alone a
> setter, then I'm doing (or have done) somthing else wrong.
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at 
> https://mail.python.org/archives/list/python-ideas@python.org/message/MDCRGZBOHLTC5DGJFYXGOIJZ2WECT5YL/
> Code of Conduct: http://python.org/psf/codeofconduct/
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/RICX4FO3XOEEVVBUZCC6UZB2VUBWUMLG/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to