ОблоТка канала

🐍 Python Turbo 🐍

19061 @bestpython

Π’Ρ€ΡŽΠΊΠΈ ΠΈ полСзности Python. ВсС Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. Никакой Π²ΠΎΠ΄Ρ‹, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹. ΠœΠ°Ρ€Π°Ρ„ΠΎΠ½Ρ‹ ΠΏΠΎ ΠΊΠΎΠ΄ΠΈΠ½Π³Ρƒ, Ρ€Π°Π·Π±ΠΎΡ€ вашСго ΠΊΠΎΠ΄Π° Π² Ρ‡Π°Ρ‚Π΅.

🐍 Python Turbo 🐍

3 Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄
ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π²
#Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ PEP 695 Π±Ρ‹Π» принят! 🚨 PEP 695 Π’ Π±Π»ΠΈΠΆΠ°ΠΉΡ‰Π΅Π΅ врСмя ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄ΡƒΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² синтаксС Ρ‚Π°ΠΉΠΏΠ²Π°Ρ€ΠΎΠ² ΠΈ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ². Π’ΠΎΡ‚ ΠΊΠ°ΠΊ сСйчас ΠΌΡ‹ создаём generic type alias:
from typing import TypeAlias

_T = TypeVar("_T")

ListOrSet: TypeAlias = list[_T] | set[_T]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ с ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΠΏΠ°, это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:
type ListOrSet[T] = list[T] | set[T]

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ синтаксис использования Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ² Π² классах Ρ‚Π°ΠΊΠΆΠ΅ упростили. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ Π²Ρ‹Π³Π»ΡΠ΄ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:
class ClassA[T: str]:
    def method1(self) -> T:
        ...


Π“Π΄Π΅ T - TypeVar. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ± измСнСния Ρ‚ΡƒΡ‚. Π§Ρ‚ΠΎ Π²Ρ‹ Π΄ΡƒΠΌΠ°Ρ‚Π΅ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ? Π‘Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ "var ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ…" объявлСний, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ развития синтаксиса ΠΏΠΈΡ‚ΠΎΠ½Π°? πŸ€”
PEP 695 – Type Parameter Syntax | peps.python.org

Python Enhancement Proposals (PEPs)

peps.python.org