Python Forum
when to make attributes private?
Thread Rating:
  • 1 Vote(s) - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
when to make attributes private?
#4
(Jan-10-2019, 02:48 AM)stullis Wrote: Accessing attributes directly is taboo in most programming languages and is archetypal of OOP languages in particular.
Perhaps I misunderstand you here, but I've been programming for quite some time in other languages (C++, PHP, Javascript) and have often seen client code directly change the public properties/attributes of classes. I'd hardly say it's taboo. I might be missing something?

(Jan-10-2019, 02:48 AM)stullis Wrote: Directly changing attributes without using the appropriate methods can generate bugs since any given method could update multiple attributes for consistency. The book likely mentions it because Python doesn't enforce privacy; so, respecting privacy is entirely on the programmer.
In my experience, if you don't want someone changing the properties/attributes of an object, you make them private. Conversely, it seem super tedious and unnecessary to create a get & set method when you don't apply any restrictions. This is really the essence of my question. Why create all those trivial get/set functions if you don't have to?

(Jan-10-2019, 02:48 AM)stullis Wrote: That said, Pythonistas don't hammer on this too much. Generally, we don't use setters/getters in Python because they aren't needed, whereas other languages require them.
This is really the answer I was kinda hoping for. Still, I'd like to honor the predominant python culture in any code I write.

(Jan-10-2019, 02:48 AM)stullis Wrote: Personally, if an attribute is private, it should either have a setter or only be set at instantiation. In the event it lacks a setter, reading it is okay but don't change it.
Hear hear!
Reply


Messages In This Thread
when to make attributes private? - by sneakyimp - Jan-10-2019, 01:08 AM
RE: when to make attributes private? - by stullis - Jan-10-2019, 02:48 AM
RE: when to make attributes private? - by sneakyimp - Jan-10-2019, 10:10 PM
RE: when to make attributes private? - by snippsat - Jan-11-2019, 04:04 AM
RE: when to make attributes private? - by snippsat - Jan-11-2019, 06:11 PM
RE: when to make attributes private? - by snippsat - Jan-11-2019, 07:13 PM
RE: when to make attributes private? - by nilamo - Jan-11-2019, 07:13 PM
RE: when to make attributes private? - by sneakyimp - Jan-21-2019, 02:54 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Lint and private var names PatM 1 726 Dec-15-2022, 05:08 PM
Last Post: deanhystad
  Unable to import Private Repo using setup.py Bob786 1 1,785 Sep-02-2021, 04:19 PM
Last Post: snippsat
  python 3 dns lookup private domain didact 1 2,607 Sep-19-2020, 06:01 PM
Last Post: bowlofred
  [split] Помощь по приватным ключам/Private key help sairam17519 0 1,624 Sep-07-2020, 12:55 PM
Last Post: sairam17519
  Download file from Private GitHub rep vinuvt 0 2,000 Jul-27-2020, 11:38 AM
Last Post: vinuvt
  Private package distribution abomination disadvantages research andreir 2 2,196 May-07-2020, 12:32 AM
Last Post: andreir
  Помощь по приватным ключам/Private key help vlrubl777 5 6,060 Mar-15-2019, 08:16 PM
Last Post: vlrubl777
  Fetching private ip address from instances of an autoscaling group deepsonune 0 3,301 May-18-2018, 10:32 AM
Last Post: deepsonune
  Inheritance private attributes vaison 5 12,878 May-03-2018, 09:22 AM
Last Post: vaison
  Can access class private variable? Michael 2 7,211 Aug-11-2017, 01:59 PM
Last Post: snippsat

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020