← Lesson
Dataclasses
Joeven
Run
Reset
Python loads on first run
from dataclasses import dataclass, field, asdict @dataclass(frozen=True) class ToolCall: name: str query: str call = ToolCall("search", "python lists") print(call) print(call.name, call.query) print("as dict", asdict(call)) try: call.name = "read" except Exception as e: print("frozen:", type(e).__name__) as_dict = {"name": "search", "query": "python lists"} as_dict["nam"] = "oops" print("dict typo stays", as_dict) @dataclass class State: goal: str step: int = 0 log: list = field(default_factory=list) a = State("find a file") b = State("find a file") a.log.append("start") print("a.log", a.log) print("b.log", b.log) print("step default", a.step) print("equal calls?", ToolCall("search", "q") == ToolCall("search", "q"))
Run to execute this in your browser. Nothing is sent to a server.