Python OOP and Modules

Classes, dataclasses, inheritance, properties, abstract base classes, modules, and package patterns.

View
StandardDetailedCompact
Export
Copy the compact sheet, download it, or print it.
Download
`D` dense toggle · `C` copy all

Classes and instances

Core object-oriented patterns.

Basic class

Basic class

pythonANYclassoop
python
class User:
    def __init__(self, name: str):
        self.name = name

Instance method

Instance method

pythonANYclassmethods
python
class User:
    def greet(self) -> str:
        return f"Hello, {self.name}"

Class variable

Class variable

pythonANYclassattributes
python
class Job:
    queue = "default"

Class method

Class method

pythonANYclassmethodoop
python
class User:
    @classmethod
    def from_dict(cls, data: dict):
        return cls(data["name"])

Static method

Static method

pythonANYstaticmethodoop
python
class Math:
    @staticmethod
    def clamp(value, low, high):
        return max(low, min(value, high))

Dataclass

Dataclass

pythonANYdataclassoop
python
from dataclasses import dataclass

@dataclass
class Point:
    x: int
    y: int

Inheritance and protocols

Inheritance, properties, and abstract base classes.

Subclass

Subclass

pythonANYinheritanceoop
python
class Admin(User):
    def can_delete(self) -> bool:
        return True

Call super

Call super

pythonANYinheritancesuper
python
class Child(Base):
    def __init__(self, name: str):
        super().__init__(name)

Property getter/setter

Property getter/setter

pythonANYpropertyoop
python
class Celsius:
    def __init__(self, value: float):
        self._value = value

    @property
    def value(self) -> float:
        return self._value

    @value.setter
    def value(self, new_value: float):
        self._value = new_value

ABC abstract method

ABC abstract method

pythonANYabcoop
python
from abc import ABC, abstractmethod

class Shape(ABC):
    @abstractmethod
    def area(self) -> float:
        raise NotImplementedError

Modules and imports

Module organization and import patterns.

Import a module

Import a module

pythonANYimportmodules
python
import math
radius = math.sqrt(49)

Import a name

Import a name

pythonANYimportmodules
python
from pathlib import Path

Import with alias

Import with alias

pythonANYimportalias
python
import numpy as np

Guard script entry point

Guard script entry point

pythonANY__name__main
python
def main():
    print("running")

if __name__ == "__main__":
    main()

Module docstring

Module docstring

pythonANYmodulesdocstring
python
"""Utility helpers for report generation."""

Package __init__

Package __init__

pythonANYpackagesexports
python
__all__ = ["connect", "disconnect"]