References#

Lecture 6

ENPM605 – L6: Object-Oriented Programming I

Covers OOP principles (encapsulation, abstraction, inheritance, polymorphism), design phase (requirement analysis, business rules, noun/verb analysis, UML modeling), classes and objects, self, __init__, instance and class attributes, dunder methods (__str__, __repr__, __eq__, __add__, __contains__, __iter__, __call__), operator overloading, abstraction, encapsulation, and @property decorators.

Python Language References
Python Tutorial: Classes

Python Tutorial

Official tutorial covering classes, objects, inheritance, and Python’s object model.

https://docs.python.org/3/tutorial/classes.html
Data Model: Special Methods

Python Data Model

Comprehensive reference for all dunder methods in Python’s data model.

https://docs.python.org/3/reference/datamodel.html#special-method-names
Built-in Functions: property

Built-in Functions

Documentation for the property() built-in and the @property decorator.

https://docs.python.org/3/library/functions.html#property
Abstract Base Classes

Standard Library – abc

The abc module for defining abstract base classes and abstract methods.

https://docs.python.org/3/library/abc.html
Errors and Exceptions

Python Tutorial

Official tutorial on exception handling, try/except, raise, and built-in exception types.

https://docs.python.org/3/tutorial/errors.html
Glossary: __slots__

Python Glossary

Memory-efficient attribute storage using __slots__ (advanced topic).

https://docs.python.org/3/glossary.html#term-__slots__
UML and Design Resources
UML (Unified Modeling Language)

Official UML Site

The standard for software modeling diagrams used in the design phase.

https://www.uml.org/
PlantUML

PlantUML

Text-based tool for creating UML diagrams from simple markup.

https://plantuml.com/
Mermaid

Mermaid

JavaScript-based diagramming tool with Markdown integration.

https://mermaid.js.org/
Style and Best Practices
PEP 8 – Style Guide

Coding Conventions

Guidelines for class naming, attribute access, and code formatting.

https://peps.python.org/pep-0008/
Google Python Style Guide

Google Style Guide

Style conventions used in this course for docstrings and code organization.

https://google.github.io/styleguide/pyguide.html
External Tutorials
Real Python: OOP in Python 3

Real Python

Comprehensive introduction to OOP in Python with practical examples.

https://realpython.com/python3-object-oriented-programming/
Real Python: Operator and Function Overloading

Real Python

Guide to overloading operators and built-in functions for custom classes.

https://realpython.com/operator-function-overloading/
Real Python: Properties

Real Python

In-depth guide to the @property decorator and managed attributes.

https://realpython.com/python-property/
Real Python: Inheritance and Composition

Real Python

Guide to inheritance and composition in Python. Preview for L7.

https://realpython.com/inheritance-composition-python/
Recommended Reading
Python Official Tutorial

Getting Started

Section 9 (Classes) covers class definition, scopes, inheritance, and iterators.

https://docs.python.org/3/tutorial/
Luciano Ramalho

Fluent Python (2nd Edition)

Chapters 11-14 cover the Python data model, special methods, operator overloading, and interfaces. Essential reading for understanding how Python objects work.

Mark Lutz

Learning Python (5th Edition)

Chapters 26-32 cover OOP fundamentals: class coding basics, inheritance, class design, and advanced class topics.

Brett Slatkin

Effective Python (2nd Edition)

Items 37-44 cover classes and inheritance, including @property, descriptors, and metaclasses.