[Contents](../Contents.md) \| [Prev (4 Classes and Objects)](../04_Classes_objects/00_Overview.md) \| [Next (6 Generators)](../06_Generators/00_Overview.md)

# 5. Inner Workings of Python Objects

This section covers some of the inner workings of Python objects.
Programmers coming from other programming languages often find
Python's notion of classes lacking in features.  For example, there is
no notion of access-control (e.g., private, protected), the whole
`self` argument feels weird, and frankly, working with objects
sometimes feel like a "free for all."  Maybe that's true, but we'll
find out how it all works as well as some common programming idioms to
better encapsulate the internals of objects.

It's not necessary to worry about the inner details to be productive.
However, most Python coders have a basic awareness of how classes
work.  So, that's why we're covering it.

* [5.1 Dictionaries Revisited (Object Implementation)](01_Dicts_revisited.md)
* [5.2 Encapsulation Techniques](02_Classes_encapsulation.md)

[Contents](../Contents.md) \| [Prev (4 Classes and Objects)](../04_Classes_objects/00_Overview.md) \| [Next (6 Generators)](../06_Generators/00_Overview.md)

