Course Content
In-Depth Python OOP
In-Depth Python OOP
Protected
The protected access modifier can be used in the global scope, but it is generally considered to be a bad practice. IDEs typically hide protected attributes and methods from outside the class, which can hinder autocomplete and code correction.
class SomeClass(): first = "Something" _attribute = "Protected" def _method(self): print("You should use protected inside the class") def info(self): print("INFO") print("first:", self.first) print("_attribute:", self._attribute) self._method() instance = SomeClass() print("Outside:", instance._attribute) # BAD PRACTICE instance.info() # It's OK
You can use protected attributes and methods inside subclasses.
class User: _entity = "Internet User" class Admin(User): def print_entity(self): print(self._entity) admin = Admin() admin.print_entity()
The protected access modifier allows you to define logic inside a class that can be extended to subclasses but should not be accessed directly from outside the class hierarchy.
Note
Protected attributes/methods in Python work similarly to regular attributes/methods, but by convention among developers, they are used for encapsulating data within a class and its subclasses.
Thanks for your feedback!