Python Tutorial 0/52 lessons ~6 min read Lesson 25

    Classes & Objects

    Python classes use class + __init__.

    Course progress0%
    Focus
    9 guided sections
    Practice signal
    Examples included
    Career prep
    Foundation builder

    Introduction

    Python classes use class + __init__. Instance state lives on self. Methods are functions whose first arg is the instance.

    Understanding the topic

    Core concepts to understand:

    • __init__ is the constructor.
    • self is explicit (not implicit).
    • Class vs instance attributes.
    • @classmethod, @staticmethod.

    Syntax reference

    Visual flow / code:

    python
    class User:
    species = "human" # class attribute
    def __init__(self, name: str, age: int):
    self.name = name
    self.age = age
    def greet(self) -> str:
    return f"Hi, I'm {self.name}"
    @classmethod
    def anonymous(cls):
    return cls("Anon", 0)
    @staticmethod
    def is_adult(age: int) -> bool:
    return age >= 18
    u = User("Alice", 30)
    print(u.greet())

    Execution workflow

    1Classes & Objects Workflow
    1 / 4

    Step 1

    __init__ is the constructor.

    Apply this step while implementing classes & objects in real code.

    Real-world use

    Most production Python uses dataclasses instead of hand-written __init__ for plain data containers — less boilerplate, more correct.

    Best practices

    • Prefer dataclasses for data containers.
    • Use type hints on attributes.
    • Keep classes small and focused.

    Common mistakes

    • Class attributes shared across instances — beware mutable defaults.

    Hands-on exercise

    Interview preparation — practice these questions:

    • Class vs instance attribute?
    • @classmethod vs @staticmethod?
    • Why explicit self?

    Summary

    In summary: self is the first arg. dataclasses for data, classes for behavior.

    Ready to mark this lesson complete?Track your journey across the entire course.