News for hackers. Stuff that matters.
Re:Ask HN: Why do you make class members private? by mytailorisrich on Monday July 25, 2022 @01:41PM (#32228065)
Variables should not be accessed directly outside of the object (encapsulation principle) and thus should all be private as a general rule.

Then, you will probably divide up the code into a number of separate methods for better structured code. All the methods that are purely internal and not part of the public API should be private if only to enforce the public API, this is also the encapsulation principle.

Re:Ask HN: Why do you make class members private? by actusual on Monday July 25, 2022 @02:07PM (#32228482)
Python would like a word...
Re:Ask HN: Why do you make class members private? by jstx1 on Monday July 25, 2022 @02:14PM (#32228572)
While we're on Python and private methods - what's with everyone just _underscoring every method and variable by default? Does anyone teach people to do this or have I just ran into a few people with this habit by chance?

I know what _underscoring does in Python and what PEP8 recommends but doing it all the time for everything is so ugly and unnecessary.

Re:Ask HN: Why do you make class members private? by ajoseps on Monday July 25, 2022 @02:22PM (#32228692)
I think it's because of what underscoring does. It's the "fake" privacy in Python. Also autocompleters tend to ignore those functions
Re:Ask HN: Why do you make class members private? by frenchy on Monday July 25, 2022 @02:34PM (#32228882)
Probably for the same reason that zero-based versioning (https://0ver.org/) is so popular. People want to avoid commitment.
Re:Ask HN: Why do you make class members private? by swinglock on Monday July 25, 2022 @02:31PM (#32228826)
Perhaps you worked with Java/C++ programmers using Python.
Re:Ask HN: Why do you make class members private? by mytailorisrich on Monday July 25, 2022 @02:33PM (#32228866)
The language is not relevant to the question.

Making variables and methods private means making them inaccessible outside the class and I gave the typical reasons/best practices for that.

Re:Ask HN: Why do you make class members private? by Saphyel on Monday July 25, 2022 @03:35PM (#32229804)
> Making variables and methods private means making them inaccessible outside the class and I gave the typical reasons/best practices for that.

The point they are making is in python there's no private method, everything is public. There's only a convention of "avoid using anything starting with "_"

Re:Ask HN: Why do you make class members private? by mytailorisrich on Tuesday July 26, 2022 @12:04AM (#32234119)
Yes but that point is irrelevant to the question...