guides

Dataclasses and NamedTuples

Optimise data structures for compilation performance.

Published May 30, 2026

Dataclass Basics

from dataclasses import dataclass

@dataclass
class Point:
    x: float
    y: float

def distance(p1: Point, p2: Point) -> float:
    dx = p1.x - p2.x
    dy = p1.y - p2.y
    return (dx * dx + dy * dy) ** 0.5

NamedTuple

from typing import NamedTuple

class Point(NamedTuple):
    x: float
    y: float

Performance

Dataclasses and NamedTuples have minimal overhead. Pyvorin compiles the methods and functions that operate on them to native code.