Python Mastery – From Basics to Brilliance / Type Hints and Code Quality

Optional Types

❓ Optional Types

Optional types are used when a variable or function value can be a specific type OR None.

They are useful when a value may or may not be provided.


🔹 Using Optional

Optional comes from the typing module.

from typing import Optional

name: Optional[str] = None

This means:

name → str OR None

So both are valid:

name: Optional[str] = "Tisha"
name: Optional[str] = None

🔹 Optional Function Parameters

from typing import Optional

def greet(name: Optional[str] = None):
    if name:
        print("Hello", name)
    else:
        print("Hello!")

Now both work:

greet("Tisha")
greet()
Hello Tisha
Hello!

🆕 Modern Syntax

In modern Python, you can write:

name: str | None = None

instead of:

name: Optional[str] = None

Both mean: str OR None