Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Correcting a Tutorial
#1
Hi everyone!

Tutorialspoint has a Python Tutorial but I think I found an error there.

This section:
https://www.tutorialspoint.com/python/python_vs_cpp.htm

Says this:
"C++ supports the concept of data encapsulation as the visibility of the variables can be defined as public, private and protected.
Python doesn't have the provision of defining the visibility. ..."

Python can define visibility for methods:
def public_method()
def _protected_method()
def __private_method()
As well as visibility for attributes:
self.public_attribute
self._protected_attribute
self.__private_attribute
Correct?
Gribouillis write Nov-02-2023, 07:31 AM:
Please post all code, output and errors (it it's entirety) between their respective tags. Refer to BBCode help topic on how to post. Use the "Preview Post" button to make sure the code is presented as you expect before hitting the "Post Reply/Thread" button.
Reply
#2
(Nov-01-2023, 11:50 PM)sonus89 Wrote: Correct?
It is not correct. The underscore in _protected_member is more of a gentlemen's agreement between programmers. It plays no role in the Python language itself and any function can access these "protected" members. It is every programmer's responsibility to avoid accessing these members in their code.
>>> class A:
...     def _protected(self):
...         print("I'm not protected")
... 
>>> a = A()
>>> a._protected()
I'm not protected
>>> 
The double underscore __private_member only hides the name by mangling it, but it remains accessible, so that encapsulation is not enforced
>>> class A:
...     def __protected(self):
...         print("I'm not protected")
... 
>>> a = A()
>>> a._A__protected()
I'm not protected
Reply


Forum Jump:

User Panel Messages

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