Skip to content

Course on static typing in python

DIMFLIX/PyTyping-Course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠœΠΎΠ΄ΡƒΠ»ΡŒ 1: ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Python

  • 1.1 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ: Π·Π°Ρ‡Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ?
    • ДинамичСская ΠΈ статичСская типизация: ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы
    • Випизация Π² Python: история ΠΈ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡ
    • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ: mypy, PyCharm, Π΄Ρ€ΡƒΠ³ΠΈΠ΅
  • 1.2 Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…:
    • int, float, str, bool: основы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ
    • None: отсутствиС значСния ΠΈ Π΅Π³ΠΎ особСнности
    • Duck typing: нСявная типизация Π² Python
  • 1.3 ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΡ… типизация:
    • list, tuple, dict, set: Ρ€Π°Π±ΠΎΡ‚Π° с коллСкциями
    • Випизация ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ: List[int], Tuple[str, int], Dict[str, float]
    • Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹: типизация ΠΈ особСнности
  • 1.4 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ типизация:
    • Аннотация Ρ‚ΠΈΠΏΠΎΠ² для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния
    • ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Ρ‚ΠΈΠΏΡ‹
    • Callable: Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ
  • 1.5 ΠšΠ»Π°ΡΡΡ‹ ΠΈ типизация:
    • Аннотация Ρ‚ΠΈΠΏΠΎΠ² для Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² класса
    • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса ΠΈ типизация
    • НаслСдованиС ΠΈ типизация: ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏΡ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с наслСдованиСм

ΠœΠΎΠ΄ΡƒΠ»ΡŒ 2: ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Π°Ρ типизация

  • 2.1 Випизация с ипользованиСм TypeVar:
    • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов
    • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TypeVar
    • ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования TypeVar
  • 2.2 Π’ΠΈΠΏΡ‹ объСдинСний ΠΈ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹:
    • Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹
    • ИспользованиС Optional для обозначСния возмоТности отсутствия значСния
  • 2.3 Π’ΠΈΠΏΡ‹ псСвдонимов:
    • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ собствСнных ΠΈΠΌΡ‘Π½ для слоТных Ρ‚ΠΈΠΏΠΎΠ²
    • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ читаСмости ΠΈ удобства Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ
  • 2.4 Π’ΠΈΠΏΡ‹ Any, NoReturn:
    • Any: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    • NoReturn: ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ функция Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
  • 2.5 Π’ΠΈΠΏΡ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ²:
    • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ интСрфСйсов для классов Π±Π΅Π· явного наслСдования
    • Structural typing: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠΎ структурС, Π° Π½Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ

ΠœΠΎΠ΄ΡƒΠ»ΡŒ 3: Випизация Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…

  • 3.1 Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ mypy Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс:
    • Настройка mypy для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅
    • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡ ошибок mypy ΠΈ ΠΈΡ… исправлСниС
  • 3.2 Stub Ρ„Π°ΠΉΠ»Ρ‹:
    • Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹?
    • Как Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сторонниС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
    • ГСнСрация stub Ρ„Π°ΠΉΠ»ΠΎΠ²

Important

Если Π²Π°ΠΌ понравился этот курс, ΠΈ Π²Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΏΠ½ΡƒΠ»ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅, поТалуйста, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ этот Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ. МнС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ приятно :)

About

Course on static typing in python

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published