skip to Main Content

Python 11.9 Instant

# Self type t = Temperature(25) print(t)

try: fail_with_errors() except* ValueError as e: print(f"Caught ValueError: {e.exceptions}") except* TypeError as e: print(f"Caught TypeError: {e.exceptions}") except* ZeroDivisionError as e: print(f"Caught ZeroDivisionError: {e.exceptions}") if == " main ": print("=== Python 3.11.9 Demo ===") python 11.9

def demonstrate_exception_groups(): """Python 3.11 introduced ExceptionGroup and except*.""" def fail_with_errors(): errors = [] for i in range(3): try: if i == 0: raise ValueError("Bad value") elif i == 1: raise TypeError("Wrong type") else: raise ZeroDivisionError("Divide by zero") except Exception as e: errors.append(e) if errors: raise ExceptionGroup("Multiple failures", errors) # Self type t = Temperature(25) print(t) try:

class Temperature: def (self, celsius: float): self.celsius = celsius errors) class Temperature: def (self

@classmethod def from_fahrenheit(cls, fahrenheit: float) -> Self: celsius_val = (fahrenheit - 32) * 5/9 return cls(celsius_val)

Below is a piece of Python code demonstrating a feature introduced or stable in , like Self type hint, ExceptionGroup , or tomllib . # demo_python_3.11_features.py # Compatible with Python 3.11.9 import tomllib from typing import Self