DEV Community

qing
qing

Posted on

10 Modern Python Features You're Missing

Stop Writing Python Like It's 2015: Modern Python Features You're Missing

Python has evolved dramatically. Are you using these modern features?

1. F-Strings with Expressions (3.6+)

# Old way
name = "Alice"
print("Hello, {}! You are {} years old.".format(name, age))

# Modern
print(f"Hello, {name}! You are {age} years old.")
print(f"Result: {2 ** 10}")  # Expressions work!
print(f"{value:.2f}")  # Formatting works!
Enter fullscreen mode Exit fullscreen mode

2. Structural Pattern Matching (3.10+)

match command:
    case "quit":
        quit_game()
    case "go" | "move":
        move_player()
    case {"action": action, "direction": direction}:
        handle_action(action, direction)
    case _:
        print("Unknown command")
Enter fullscreen mode Exit fullscreen mode

3. TypedDict for Better Type Hints

from typing import TypedDict

class User(TypedDict):
    name: str
    age: int
    email: str

def process_user(user: User) -> None:
    print(user["name"])  # Type-safe!
Enter fullscreen mode Exit fullscreen mode

4. dataclass with kw_only (3.10+)

from dataclasses import dataclass

@dataclass(kw_only=True)
class Config:
    host: str
    port: int = 8080
    debug: bool = False

# Must use keyword arguments
config = Config(host="localhost")
Enter fullscreen mode Exit fullscreen mode

5. Exception Groups (3.11+)

try:
    async with asyncio.TaskGroup() as tg:
        task1 = tg.create_task(fetch_data())
        task2 = tg.create_task(process_data())
except* ValueError as eg:
    for exc in eg.exceptions:
        print(f"ValueError: {exc}")
Enter fullscreen mode Exit fullscreen mode

6. tomllib for Config Files (3.11+)

import tomllib

with open("config.toml", "rb") as f:
    config = tomllib.load(f)
Enter fullscreen mode Exit fullscreen mode

7. Better Error Messages (3.10+)

Python 3.10+ gives you much clearer error messages:

  • NameError: Did you mean 'my_variable'?
  • Shows the exact location of syntax errors

The Takeaway

If you're not using Python 3.10+, you're missing out on massive improvements.


Follow me for more modern Python tips! 🐍

Follow for more Python content!


📧 Get my FREE Python CheatsheetFollow me on Dev.to and drop a comment below — I'll DM you the cheatsheet directly!

🐍 50+ essential Python patterns, one-liners, and best practices for everyday development. Free for all readers.


🛠️ Recommended Tool

If you found this useful, check out Content Creator Ultimate Bundle (Save 33%) — $29.99 and designed for developers like you.

Get instant access to our best-selling AI Dev Boost, HTML Landing Page Templates, AI Prompts for Developers, and Python Automation Scripts Pack, perfect for content creators and marketers looking to elevate their game. This bundle is a must-have for anyone looking to create stunning content, build high-converting landing pages, and drive real results. With these tools, you'll be able to create engaging content, build beautiful landing pages, and boost your online presence.


喜欢这篇文章?关注获取更多Python自动化内容!

Top comments (0)