{
  "schema_version": "1.0",
  "codex": "thecodex.expert/coding",
  "type": "concept",
  "slug": "concepts/classes",
  "name": "Classes",
  "section": "CS Concepts",
  "canonical_definition": "A class is a named template that defines the attributes and methods shared by all objects of that type, serving as a blueprint from which individual instances are created, each with its own copy of the class's instance attributes.",
  "confidence": "high",
  "last_verified": "2026-06-01",
  "source_count": 4,
  "url": "https://thecodex.expert/coding/concepts/classes/",
  "concept_relationship": {
    "requires_first": [
      "concepts/objects",
      "concepts/functions",
      "paradigms/object-oriented"
    ],
    "enables": [
      "concepts/inheritance",
      "concepts/encapsulation",
      "concepts/polymorphism"
    ],
    "commonly_confused_with": [
      "class attr != instance attr",
      "self is convention not keyword",
      "Go has no classes"
    ]
  },
  "sources": [
    {
      "num": 1,
      "citation": "Python Language Reference \u00a73.3",
      "tier": 1
    },
    {
      "num": 2,
      "citation": "PEP 557 \u2014 Data Classes",
      "tier": 1
    },
    {
      "num": 3,
      "citation": "Barrett et al. 1996 C3 linearisation",
      "tier": 1
    },
    {
      "num": 4,
      "citation": "Java Language Specification \u00a78",
      "tier": 1
    }
  ]
}