ΠŸΠΈΡ‚ΠΎΠ½ ΠΎΠΎΠΏ: ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² Python ΠΏΠ»ΠΎΡ…ΠΎΠΉ ООП / Π₯Π°Π±Ρ€

Π’ Python уТасный ООП. ΠšΠ»ΠΈΠΊΠ±Π΅ΠΉΡ‚Π½Ρ‹ΠΉ тСзис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ Π½Π° сущСствованиС. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ языков, Π³Π΄Π΅ ООП прСдставлСн Π½Π΅ Π² самом классичСском Π²ΠΈΠ΄Π΅, Π½Ρƒ ΠΈΠ»ΠΈ Ρ‚Π°ΠΊ принято ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Π΅ JavaScript ΠΈ Lua, Golang с ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅. Но Β«Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ всС» всСгда Π»ΠΈ синоним слова Β«Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉΒ»?Β  Π‘ Ρ‡Π΅Π³ΠΎ ΠΌΡ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ вязли, Ρ‡Ρ‚ΠΎ ООП Π² Python Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ООП? Π§Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ являСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ отсчёта Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈΒ» ООП? Smalltalk ΠΈΠ»ΠΈ SimulaΒ 67? Π’Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ – это просто ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°.. ΠΈΠ»ΠΈ ΡƒΠΆΠ΅ Π΄ΠΎΠ³ΠΌΠ°?

Π’ этом ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ:

  • Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ с ООП Π² Python;

  • Ρ‡Π΅ΠΌ Π΅Π³ΠΎ ООП отличаСтся ΠΎΡ‚ языков с эталонной ΠΏΠΎ мнСнию ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ООП: Java, C# ΠΈ Π‘++;

  • ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ языка Python Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всё ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ.

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ этот тСкст Π°Π²Ρ‚ΠΎΡ€ YouTube-ΠΊΠ°Π½Π°Π»Π° PyLounge Макс. ΠŸΠΎΠ΅Ρ…Π°Π»ΠΈ!

ДисклСймСр: Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‡Ρƒ Π²Ρ‹ΡΠΊΠ°Π·Π°Ρ‚ΡŒ свои «Ρ€Π°ΡΡΡƒΠΆΠ΄Π΅Π½ΠΈΡ Π½Π° Ρ‚Π΅ΠΌΡƒ» ΠΈ ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π΅ обладаю ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΠΈΠ΅ΠΉ Π½Π° истину. Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ ΠΎΡΡƒΠ΄ΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π² коммСнтариях.

Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ. Π§Π΅ΠΌ ООП Π² Python отличаСтся ΠΎΡ‚ классичСской ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ЯП.

ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° ООП появилась Π΅Ρ‰Ρ‘ 60-70-Ρ… Π³ΠΎΠ΄Π°Ρ… XX Π²Π΅ΠΊΠ°. ООП ΠΈΠ»ΠΈ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированноС программированиС — это мСтодология программирования, которая основана прСдставлСнии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…Β ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся экзСмпляром класса, Π° классы ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚Β ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽΒ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ особСнностями ООП являСтся понятия:

  • абстракция;Β 

  • инкапсуляция;Β 

  • наслСдованиС;Β 

  • ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ.

Алан Кэй, создатСля языка Smalltalk, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Β«ΠΎΡ‚Ρ†ΠΎΠ²-основатСлСй» ООП, Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», Ρ‡Ρ‚ΠΎ ООП ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π½Π°Π±ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ²:

  1. Всё являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

  2. ВычислСния ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Ρ‘ΠΌ взаимодСйствия (ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ) ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ дСйствиС.

  3. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ, которая состоит ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

  4. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ являСтся прСдставитСлСм класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ Ρ†Π΅Π»Ρ‹Π΅ числа ΠΈΠ»ΠΈ списки).

  5. Π’ классС задаётся ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’Π΅ΠΌ самым всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ экзСмплярами ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ дСйствия.

  6. ΠšΠ»Π°ΡΡΡ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру с ΠΎΠ±Ρ‰ΠΈΠΌ ΠΊΠΎΡ€Π½Π΅ΠΌ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ наслСдования. ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, связанноС с экзСмплярами ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ класса, автоматичСски доступны Π»ΡŽΠ±ΠΎΠΌΡƒ классу, располоТСнному Π½ΠΈΠΆΠ΅ Π² иСрархичСском Π΄Π΅Ρ€Π΅Π²Π΅.

«ООП для мСня ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ лишь ΠΎΠ±ΠΌΠ΅Π½ сообщСниями, локальноС сохранСниС, ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π°, ΠΈ скрытиС состояния, ΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ связываниС». (c) Алан Кэй

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π² соотвСтствии с идСями Алана Кэя, самыми Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ООП являСтся:

  1. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° сообщСний (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ взаимодСйствиС).

  2. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ.

  3. ДинамичСскоС связываниС.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ указываСтся ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ связываниС, Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² наслСдованиС ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π½Π΅Ρ‚. Π’Π΅Π΄ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π±Ρ‹Π²Π°Π΅Ρ‚ статичСский (Ρ€Π°Π½Π½Π΅Π΅ связываниС) – это ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ (ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹). Β Π’ΠΎ Π΅ΡΡ‚ΡŒ Кэй, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считаСтся ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° «ООП» Π½Π΅ считал Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ частями ООП наслСдованиС ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΈ условны,Β Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ€Π°Π·ΠΌΡ‹Ρ‚Ρ‹.

ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ идСя ООП состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π½Π° ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ свой статус Π²Π½ΡƒΡ‚Ρ€ΠΈ, ΠΈ ΠΎΠ½ΠΈ связаны с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ мноТСством Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²) для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ статусом ΠΈ для связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΆΠ΅ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° появились ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки. Π―Π·Ρ‹ΠΊΠΈ OO Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. И ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ инструмСнты ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ООП β€” классы Π±Ρ‹Π»ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… инструмСнтов.

Под инкапсуляциСй стали ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ классов ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² сСбС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСпосрСдствСнно связаны с этим классом ΠΏΠΎ смыслу. Β ΠŸΡ€ΠΈ этом ΠΎΠ΄Π½ΠΈ языки соотносят ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ с сокрытиСм этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ (Smalltalk,Β Eiffel,Β OCaml) Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ эти понятия.

НапримСр, Π² Java ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠ΅, ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π»Π΅Π½Π°ΠΌ этого класса. Π’Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π‘++, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ концСпция Π΄Ρ€ΡƒΠ·Π΅ΠΉ (friend), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ поля Π΄Ρ€ΡƒΠ³ΠΈΡ… классов, Ρ‡Ρ‚ΠΎ сильно критикуСтся.

НаслСдованиС — свойство систСмы, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ класс Π½Π° основС ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ с частично ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ заимствованной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΒ β€” это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚. Π΅. ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ классам, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ «ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. На самом Π΄Π΅Π»Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ являСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π΅Π³ΠΎ исходный ΠΊΠΎΠ΄ зависит ΠΎΡ‚ класса. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС ΠΏΠΎΠ΄ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ понимаСтся мноТСство Ρ„ΠΎΡ€ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ слова – ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

АбстрагированиС (абстракция Π΄Π°Π½Π½Ρ‹Ρ…) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· рассмотрСния Π½Π΅Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠΉ. Π’ ООП Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, подразумСвая Π½Π°Π±ΠΎΡ€ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… характСристик ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, доступных ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ΠšΠ»Π°ΡΡΒ β€” ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ, комплСксный тип Π΄Π°Π½Π½Ρ‹Ρ…, состоящий ΠΈΠ· тСматичСски Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Β«ΠΏΠΎΠ»Π΅ΠΉΒ» (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±ΠΎΠ»Π΅Π΅ элСмСнтарных Ρ‚ΠΈΠΏΠΎΠ²) ΠΈ Β«ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²Β» (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этими полями), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ являСтся модСлью ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ сущности с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ ΠΈ Π²Π½Π΅ΡˆΠ½ΠΈΠΌΒ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ°ΠΌΠΈΒ Π΄Π»Ρ опСрирования своим содСрТимым (значСниями ΠΏΠΎΠ»Π΅ΠΉ).

Π’ Ρ†Π΅Π½Ρ‚Ρ€Π΅ ООП находится ΠΏΠΎΠ½ΡΡ‚ΠΈΠ΅Β ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.Β ΠžΠ±ΡŠΠ΅ΠΊΡ‚Β β€” это ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ сообщСния ΠΈ которая ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π° Π½ΠΈΡ… Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ свои Π΄Π°Π½Π½Ρ‹Π΅. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Β β€” это экзСмпляр класса. Π”Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° содСрТатся Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, Π° Π½Π΅ просто Π»Π΅ΠΆΠ°Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.Β Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡΒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя сокрытиС (Π½ΠΎ ΠΈΠΌ Π½Π΅ являСтся!).

ООП пытаСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ Π½Π° Β«Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΡ€Β», ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.

БоврСмСнная идСя ООП β€” это синтСз всСх ΠΈΡ… ΠΈΠ΄Π΅ΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ΄Π΅ΠΉ Π“ΠΎΠ»Π΄Π±Π΅Ρ€Π³Π°, Π‘Π°Ρ€Π±Π°Ρ€Ρ‹ Лисков, Дэвида ΠŸΠ°Ρ€Π½Π°ΡΠ°, Π‘Π΅Ρ€Ρ‚Ρ€Π°Π½Π° ΠœΠ΅ΠΉΠ΅Ρ€Π°, Π“ΡŽΠ»Ρ Ага ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…. Но Π½ΠΈΠΊΡ‚ΠΎ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ «ООП». Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ эти инструмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ.

А Ρ‡Ρ‚ΠΎ ΠΆΠ΅ касаСмо Python. Python ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ удовлСтворяСт всСм пСрСчислСнным Π²Ρ‹ΡˆΠ΅ трСбования, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ являСтся Β«ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΒ». ООП – просто ΡΡ‚ΠΈΠ»ΡŒ.

Однако Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΈΡˆΠΊΠΈ ООП, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стали Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ООП Π·Π° счёт ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… языках, нСсколько ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Python.

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² доступа

Π’ Python отсутствуСт Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅, Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Π΅, ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Β  МногиС Π²Π΅Ρ‰ΠΈ Π² Python основаны Π½Π° ΡΠΎΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡΡ…. Π‘ΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… рСализуСтся чисто ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ. Π—Π° счёт соглашСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Ρƒ свойств ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹). Π”Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠ°Π½Π³Π»ΠΈΠ½Π³. Чисто тСхничСски это Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ прямой доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ Ρ€Π°Π²Π½ΠΎΡΠΈΠ»ΡŒΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ ΠΏΡ€ΠΈΠ²Π°Ρ‚, Π½ΠΎ это скорСС ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ Π°Π΄Π΅ΠΏΡ‚Π°ΠΌΠΈ классичСского ООП «грязный Ρ…Π°ΠΊΒ». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² Python Π½Π΅Ρ‚ классичСского раздСлСния Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ доступа, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Python довСряСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ. Π’ этом ΠΏΠ»Π°Π½Π΅ Python Π±Π»ΠΈΠΆΠ΅ ΠΊ Π‘++.

Β«Π”Π°, я знаю, Ρ‡Ρ‚ΠΎ Ρ‚Ρ‹ моТСшь Π²Ρ‹ΡΡ‚Ρ€Π΅Π»ΠΈΡ‚ΡŒ сСбС Π² Π½ΠΎΠ³Ρƒ, Π½ΠΎ я Π²Π΅Ρ€ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ‹ этого Π½Π΅ сдСлаСшь. Π’Π΅Π΄ΡŒ Π½Π΅ Π΄Π°Ρ€ΠΎΠΌ Ρ‚Ρ‹ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ·Π½Π°Π», ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ написанию ΠΊΠΎΠ΄Π°Β». (с) Python

МнС каТСтся, инкапсуляция Π½Π΅ Ρ‚Π°ΠΊ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² языкС с динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.  ВыскаТу нСпопулярноС ΠΌΠ½Π΅Π½ΠΈΠ΅ – это Π½Π΅ добавляСт Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ бСзопасности, ΠΎΠ½Π° просто Π΄Π°Π΅Ρ‚ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅ бСзопасности. Если Π²Ρ‹ Π³Ρ€Π°ΠΌΠΎΡ‚Π½Ρ‹ΠΉ программист, Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ сдСлаСтС всё ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ.

Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ языка Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΉ Β«ΠΏΡ€Π΅Π΄ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»ΡŒΒ»? ΠžΡ‚Π²Π΅Ρ‚ кроСтся Π² философии Python. Π“Π²ΠΈΠ΄ΠΎ Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ. Как ΠΎΠ½ выразился Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ: Β«ΠΌΡ‹ всС здСсь взрослыС ΠΏΠΎ ΠΎΠ±ΠΎΡŽΠ΄Π½ΠΎΠΌΡƒ согласию. Python довСряСт Π²Π°ΠΌ. Он Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚: Β«Π­ΠΉ, Ссли Ρ…ΠΎΡ‡Π΅ΡˆΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ²Ρ‹Ρ€ΡΡ‚ΡŒΡΡ Π² Ρ‚Π΅ΠΌΠ½Ρ‹Ρ… мСстах, я надСюсь, Ρ‡Ρ‚ΠΎ Ρƒ тСбя Π΅ΡΡ‚ΡŒ ΡƒΠ²Π°ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΈ Π²Ρ‹ Π½Π΅ создаСтС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΒ». Π­Ρ‚ΠΎΠ³ΠΎ тСзиса ΠΌΡ‹ Π΅Ρ‰Ρ‘ коснёмся Π½ΠΈΠΆΠ΅. Пока просто Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅.

Π’ΠΎΠΎΠ±Ρ‰Π΅ инкапсуляция – это Π½Π΅ совсСм ΠΏΡ€ΠΎ сокрытиС. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ опрСдСляСтся ΠΊΠ°ΠΊ «процСсс объСдинСния элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ классом» ΠΈΠ»ΠΈ Β«ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ описания». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, номинально Π² Python всё ΡΠΎΠ±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π²Π΅Ρ€Π½ΠΎ.

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ интСрфСйсов

Π’ языкС Python Π½Π΅Ρ‚ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ конструкции ΠΊΠ°ΠΊ интСрфСйс (interface). К слову Π² Π‘++ ΠΈΡ… Ρ‚ΠΎΠΆΠ΅ Π½Π΅Ρ‚. Но Ρ‡Ρ‚ΠΎ Π² Python, Ρ‡Ρ‚ΠΎ Π² Π‘++, Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйсы.  АбстрактныС классы ­– это Ρ…ΠΎΡ‚ΡŒ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΈ допускаСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ. На ΠΌΠΎΠΉ взгляд, отсутствиС интСрфСйсов искусствСнный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ избСТания нСоднозначности. Π’ΠΎΡ‚ Ρƒ тСбя Π΅ΡΡ‚ΡŒ абстрактныС классы, Π²ΠΎΡ‚ ΠΈΡ… ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ абстрактных классов ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всё Ρ‚ΠΎΠΆΠ΅ Ρ‡Ρ‚ΠΎ ΠΈ с интСрфСйсами, Π½ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ. Π’Π΅Π΄ΡŒ Python ΠΈΠ΄Ρ‘Ρ‚ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ простоты ΠΈ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ всё лишнСС. Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ языка Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ switch case Π²Ρ‹ΠΊΠΈΠ½ΡƒΠ»ΠΈ, Π΄Π°Π±Ρ‹ «ΠΌΠ΅ΡΡ‚ΠΎ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π»Π°».

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС

МногиС соврСмСнныС языки ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ мноТСствСнного наслСдования, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ услоТняСт. Однако Python Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΈΠ΄Ρ‘Ρ‚ ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ упрощСния, Π½ΠΎ стараСтся Π²Ρ‹ΠΊΠΈΠ΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, Π° Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, вСдь любоС ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ β€” это потСря гибкости + см. ΠΏΡƒΠ½ΠΊΡ‚ ΠΏΡ€ΠΎ Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ своСму Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ. Python Π΄ΡƒΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ достаточно ΡƒΠΌΡ‘Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ»ΠΎΠ΄ΠΈΡ‚ΡŒ Π³ΠΈΠ³Π°Π½Ρ‚ΡΠΊΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΈ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ€ΠΎΠΌΠ±Π°. НС довСрился ΠΎΠ½ Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ, ΠΏΡ€ΠΈ создании GIL. Но спишСм это Π½Π° ошибки молодости. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π‘++ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСствСнноС наслСдованиС. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ с этим ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ всё Ρ‚ΠΎΠΆΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π·Π°ΠΊΠΎΠ½Π°.

Утиная типизация

Она, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊ Ρ‚Π΅ΠΌΠ΅ относится косвСнно. Но, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, рядом с Python всСгда всплываСт понятиС ΡƒΡ‚ΠΈΠ½ΠΎΠΉ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ. Β 

Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ выглядит ΠΊΠ°ΠΊ ΡƒΡ‚ΠΊΠ°, ΠΏΠ»Π°Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΡƒΡ‚ΠΊΠ° ΠΈ крякаСт ΠΊΠ°ΠΊ ΡƒΡ‚ΠΊΠ°, это навСрняка ΠΈ Π΅ΡΡ‚ΡŒ ΡƒΡ‚ΠΊΠ°.

Утиная Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡΒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ вмСсто провСрки Ρ‚ΠΈΠΏΠ°Β Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Π² Python ΠΌΡ‹ склонны ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ и пСрСхватывая ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли ΠΎΠ½ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π’ΡƒΡ‚ Π²ΠΎ всСй красС дСмонстрируСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Π”Π·Π΅Π½Π° Python β€” «явноС Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ нСявноС». Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ выглядит ΠΊΠ°ΠΊ ΡƒΡ‚ΠΊΠ° ΠΈ крякаСт, Ρ‚ΠΎ это ΡƒΡ‚ΠΊΠ°, ΠΊ Ρ‡Π΅ΠΌΡƒ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Π² ΡΠΊΠ·ΠΈΡΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ копания ΠΈ вопросы самоопрСдСлСния? Π‘ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ посмотри ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒΒ DuckΒ ΠΈΒ Human это Ρ€Π°Π·Π½Ρ‹Π΅ классы, Python ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽΒ fly_quack() для экзСмпляра класса Human. И хотя класс HumanΒ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹Β quackΒ ΠΈΒ flyΒ , Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΈ поэтому всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π²Π΅Ρ€Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

НСт способов ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния класса ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ класса (константныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹), снова всё полагаСтся Π½Π° Π΄ΠΎΠ±Ρ€ΡƒΡŽ волю программиста.

Π’ΠΎΠΎΠ±Ρ‰Π΅ Π΄ΠΎΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ Π΅Ρ‰Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎ Ρ‡Π΅Π³ΠΎ. НапримСр, Π½Π΅ совсСм стандартноС описаниС статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ self, MRO ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Но Python ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ всСм трСбованиям ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ ООП. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π½Π΅ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ всСх. Но Π½Π° Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. Β Π“Π²ΠΈΠ΄ΠΎ Π²Π°Π½ Россум ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄ΠΈΠ·Π°ΠΉΠ½Π° языка мотивировался Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌ Π”Π·Π΅Π½ΠΎΠΌ Python, Π³Π΄Π΅ простоС Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ слоТноС, явноС Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ явного ΠΈ Ρ‚.Π΄. Π§Π΅Ρ€Π΅Π· эту Ρ„ΠΈΠ»ΠΎΡΠΎΡ„ΠΈΡŽ красной Π½ΠΈΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ структура всСго языка Python.

The Zen of Python

Python Π·Π°Π΄ΡƒΠΌΠ°Π½ ΠΊΠ°ΠΊ Π³ΠΈΠ±Ρ€ΠΈΠ΄. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ стилях. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Ρ‚Π°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ абстракция, инкапсуляция, наслСдованиС ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ. Π§Ρ‚ΠΎ ΠΈΠ· этого отсутствуСт Π² Python?

По мнСнию ΠΌΠ½ΠΎΠ³ΠΈΡ… Smalltalk β€” самый чистый ООП язык, Π½ΠΎ Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ ΠΈ ΠΊΠ°ΠΊΠΎΠ²Π° Ρ†Π΅Π½Π° этой чистоты? МоТно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ Π½Π° Smalltalk, Ρ‚Π°ΠΊ ΠΈ Π½Π° Python.

Python ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½. Вводятся ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π±Π΅Π· особого внимания ΠΊ тСологичСским концСпциям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½Β» ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π­Ρ‚ΠΎ язык для людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ быстро ΠΈ просто, Π° ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ ΠΎΠ½ΠΎ Β«ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΒ» Π²Π΅Ρ€Π½ΠΎ, ΠΎΡ‚Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ»Π°Π½.

Π•ΡΡ‚ΡŒ языки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄ΡƒΡ‚ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π΄Π²ΡƒΡ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² развития: Π΄ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ, Π΄Π°ΡŽΡ‚ срСдства ΠΈ возмоТности, Π·Π° Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ своих Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. И языки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ максимуму всё Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±Ρ‹Π»ΠΎ просто ΠΈ Ρ‚ΠΎΠΏΠΎΡ€Π½ΠΎ. ВсС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π²Π½ΠΎ приняты Π·Π° тСбя, всСм извСстно ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Golang. Π‘ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Β«ΠŸΠΎΡ‡Ρ‚ΠΈ всС Β«Ρ„ΠΈΡ‡ΠΈΒ» β€” это сахарная ΠΊΠΎΠ»Π°, Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это толстяк с диабСтом»».

Python стараСтся ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ максимально Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ свободу дСйствий, сохраняя максимум Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ отступы, динамичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ самыС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ ООП. Но Π³Π»ΡƒΠΏΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ такая стратСгия ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠ»ΠΎΡ…ΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌ.

Python ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ‚Ρƒ ΠΌΠ°ΠΌΡƒ, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Ρ‚ΡƒΡΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΠ»ΠΎΡ…ΠΈΠΌΠΈ Π΄Π΅Ρ‚ΡŒΠΌΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π½ΠΎΡ‡ΡŒΡŽ, Ссли Π²Ρ‹ осознаСтС послСдствия.

Он Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ свободный доступ ΠΊ свойствам класса, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ частными ΠΈΠ»ΠΈ константными, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠΆΠ΅ взрослый.

Π­Ρ‚ΠΎ извСчная Π΄ΠΈΠ»Π΅ΠΌΠΌΠ°: Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ авторитарная ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ свобода? ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° этот вопрос сам. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ подходящий для сСбя инструмСнт – язык программирования.

ООП Π² Python Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈ Π½Π΅ Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языка. Он Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π’Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊΠΈΠΌ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π΅Π³ΠΎ Π²ΠΈΠ΄Π΅Π» Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ языка Π“Π²ΠΈΠ΄ΠΎ Π²Π°Π½ Россум. ООП Π² Python это Ρ‡Π°ΡΡ‚ΡŒ Π”Π·Π΅Π½Π° Python. Ѐилософии, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ язык ΠΈ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ люди ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Π° Π½Π΅ учатся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ стороны Python. Π£ Python довольно надСТная ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль, Π½ΠΎ это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль Python, Π° Π½Π΅ C++, Java или…кого-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

НС динамичСская типизация, корявый ООП ΠΈ большоС количСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ Π³ΠΎΠ²ΠΎΠ½ΠΎΠΊΠΎΠ΄. Π“ΠΎΠ²Π½ΠΎΠΊΠΎΠ΄ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ люди. Π›ΡŽΠ΄ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π·ΡƒΡ‚ Π² ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π° дСньгами ΠΈ Π½Π΅ видят Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ своСго рСмСсла, ΠΈ, бСзусловно, Ρ‚Π΅ люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния.

А Python просто сСйчас ΠΎΡ‡Π΅Π½ΡŒ популярСн. Он своСго Ρ€ΠΎΠ΄Π° Ρ„Ρ€ΠΎΠ½Ρ‚ΠΌΠ΅Π½, Π° Ρ‚ΠΎΡ‚ ΠΊΡ‚ΠΎ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠΉ, Ρ‚ΠΎΠ³ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒΡŽΡ‚. И Π΄Π°, я понимаю, Ρ‡Ρ‚ΠΎ Python стрСмится Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ простым, ΠΊΠ°ΠΊ Π·Π°Π²Π΅Ρ‰Π°Π» Π­ΠΉΠ½ΡˆΡ‚Π΅ΠΉΠ½: «всС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ простым, насколько это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΎΡ‰Π΅Β». Однако ΠΈΠ½ΠΎΠ³Π΄Π° Python всё ΠΆΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² это Β«ΠΏΡ€ΠΎΡ‰Π΅Β» Ρ‡Π΅ΠΌ Π½Π°Π΄ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Python ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ обновлСния ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ ΠΈΠ³Ρ€Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ задумывался ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ язык сцСнариСв (Π° Ρ‚Π°ΠΌ Ρ‡Π΅ΠΌ мСньшС Ρ†Π΅Ρ€Π΅ΠΌΠΎΠ½ΠΈΠΉ, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅).

Π”ΠΈΠ·Π°ΠΉΠ½ языка ΠΏΠΎΡ‚ΠΈΡ…ΠΎΠ½ΡŒΠΊΡƒ мСняСтся. Аннотации Ρ‚ΠΈΠΏΠΎΠ², Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ говорят ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ язык ΠΈ сообщСство Π²Π·Ρ€ΠΎΡΠ»Π΅ΡŽΡ‚ ΠΈ Π·Ρ€Π΅ΡŽΡ‚. Python со Π²Ρ€Π΅ΠΌΡ‘Π½ 2 вСрсии ΡƒΠΆΠ΅ сильно измСнился ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Как ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠΉ Π±ΡƒΠ½Ρ‚Π°Ρ€ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‚ΡƒΡ€Ρ‰ΠΈΠΊ ΠΏΠΎΠ΄ ΠΏΡ€ΠΈΠ·ΠΌΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ прСвращаСтся Π² консСрватора ΠΈ ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΠΊΠ°, Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Python прСвратится просто Π² ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ качСствСнный инструмСнт. А Π½Π° смСну Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ новая Ρ€ΠΎΠΊ-Π·Π²Π΅Π·Π΄Π°, которая Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Ρ€Ρ‚Π΅Ρ‚ΡŒ устои ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΎΠΉ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹ ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚ΡŒ школьников.

Π’ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ прСвращаСтся Π² бСспорядок, β€” это ваша Π²ΠΈΠ½Π°, Π° Π½Π΅ Π²ΠΈΠ½Π° языка. И ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ язык: инструмСнтом, ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ваши ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π° Π½Π΅ Π΄ΠΈΠΊΡ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΡ€ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ Π²Π°ΠΌ, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚, ΠΊΠΎΠΌΠ°Π½Π΄ΡƒΠ΅Ρ‚ Π²Π°ΠΌΠΈ.

Если ΠΌΡ‹ напишСм язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смогут ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄ΠΈΠΎΡ‚Ρ‹, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ΄ΠΈΠΎΡ‚Ρ‹ ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. И Π΄Π°, это Ρ†Π΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ придётся Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ.


Π—Π°ΠΊΠΎΠ½Ρ‡Ρƒ ΠΌΡ‹ΡΠ»ΡŒ довольно извСстной Ρ„Ρ€Π°Π·ΠΎΠΉ: Β«Π•ΡΡ‚ΡŒ всСго Π΄Π²Π° Ρ‚ΠΈΠΏΠ° языков программирования: Ρ‚Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ люди всё врСмя Ρ€ΡƒΠ³Π°ΡŽΡ‚ΡΡ, ΠΈ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Β».

Π”ΠΎΠ±Ρ€Ρ‹ΠΉ, Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ Python ООП — ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ курс ΠΎΡ‚ БСргСя Π‘Π°Π»Π°ΠΊΠΈΡ€Π΅Π²Π° β€” Stepik

НачнитС ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ Π² ΠΌΠΈΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (ООП) Π½Π° языкС Python! Π—Π΄Π΅ΡΡŒ Π²Ρ‹ смоТСтС с нуля, с самого Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΡΡ‚ΠΈΡ‡ΡŒ магию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π£Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ концСпция классов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² позволяСт Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Ρ‚ΡŒ структуру ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… болСС…

What you will learn

  • 1. ΠŸΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ООП, Π΅Π³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.
  • 2. Π‘ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ООП ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ собствСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.
  • 3. Π£Π·Π½Π°Π΅Ρ‚Π΅ особСнности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ООП Π½Π° языкС Python.
  • 4. Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ всС основныС магичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ классов языка Python.
  • 5. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с наслСдованиСм ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ.
  • 6. ΠΠ°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ контСкстов Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

About this course

ΠžΡΠ½ΠΎΠ²Ρƒ этого курса ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ задания максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Π±ΠΎΠ΅Π²Ρ‹ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ сталкиваСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ программист Π² IT-компаниях. Π€ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Ρ‹ ΠΊ ΡΡ‚ΠΈΠ»ΡŽ тСхничСских Π·Π°Π΄Π°Π½ΠΈΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, нарабатываСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° программирования, Π½ΠΎ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ восприятиС Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… тСхничСских Π·Π°Π΄Π°Π½ΠΈΠΉ.

Π’ курсС пошагово, начиная с самых простых конструкций (классов, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²), Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Π² ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΡ€ ООП. Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠΊΠ° даСтся тСорСтичСский Π²ΠΈΠ΄Π΅ΠΎ-ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π·Π°Ρ‚Π΅ΠΌ, закрСпляСтся Π½Π°Π±ΠΎΡ€ΠΎΠΌ практичСских Π·Π°Π΄Π°Π½ΠΈΠΉ (ΠΏΠΎΠ΄Π²ΠΈΠ³ΠΎΠ²). Π’ ΠΊΠΎΠ½Ρ†Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² прСдлагаСтся ΠΏΡ€ΠΎΠΉΡ‚ΠΈ испытаниС — Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая позволяСт Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΡΠΎΠΏΡ€ΠΈΠΊΠΎΡΠ½ΡƒΡ‚ΡŒΡΡ с ООП.

Π’Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²ΠΎ изучая всС ΡƒΡ€ΠΎΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ курса, Π²Ρ‹ смоТСтС ΠΏΠΎΡ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ (ΠΏΠΎΡ‚Ρ€ΠΎΠ³Π°Ρ‚ΡŒ) эту Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ программирования с классами ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. ΠžΡΠΎΠ·Π½Π°Π΅Ρ‚Π΅ Π΅Π΅ возмоТности ΠΈ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ ΠΈ знания Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡΡΡŒ ΠΈ Π΄Π°Π»Π΅Π΅ Π² этом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π» для обсуТдСния:Β https://t.me/python_selfedu

Whom this course is for

Π­Ρ‚ΠΎΡ‚ курс — ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ курса «Π”ΠΎΠ±Ρ€Ρ‹ΠΉ, Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ Python» (https://stepik.org/course/100707/), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» посвящСн основам языка Python. Если Π²Ρ‹ Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΈ, ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ Π²Π»Π°Π΄Π΅Π΅Ρ‚Π΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ конструкциями программирования Π½Π° Python, Ρ‚ΠΎ рСкомСндуСтся сначала ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π±Π°Π·ΠΎΠΉ языка, Π° ΡƒΠΆΠ΅ Π·Π°Ρ‚Π΅ΠΌ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ООП.

Initial requirements

Π—Π½Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… основ языка Python (для ΠΈΡ… изучСния ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ курс «Π”ΠΎΠ±Ρ€Ρ‹ΠΉ, Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ Python» (ссылка: https://stepik.org/course/100707/)

Meet the Instructors

Course content

Certificate

Stepik certificate

Price

FAQ

How to purchase the course in installments?

How to pay from the company?

Share this course

https://stepik. org/course/116336/promo

Direct link:
https://stepik.org/116336

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python: Π£Ρ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…

Π’ этом руководствС рассказываСтся ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (ООП) Π½Π° Python с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ. Π­Ρ‚ΠΎ пошаговоС руководство, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для людСй, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ‹Ρ‚Π° программирования. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ популярно ΠΈ доступно Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования, ΠΏΠΎΠΌΠΈΠΌΠΎ Python, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Java, C++, PHP.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅?

Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (ООП) Ρƒ вас Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² своСм ΠΊΠΎΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ, ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΎΠ΅, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, Π±Π°Π½ΠΊΠΎΠΌΠ°Ρ‚ ΠΈ Ρ‚. Π΄. ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ – это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ характСристиками ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НапримСр, Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ запуск, остановка, Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ‚ΠΎΡ€ΠΌΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π­Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ автомобиля. И характСристики это Ρ†Π²Π΅Ρ‚ автомобиля, ΠΏΡ€ΠΎΠ±Π΅Π³, максимальная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, Π³ΠΎΠ΄ выпуска ΠΈ Ρ‚.Π΄.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ . Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π² ΠΌΠΈΡ€Π΅ ООП. Π₯арактСристики Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² (свойств) . ВСхничСски Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ β€” это ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ значСния, связанныС с состояниСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ β€” это Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π’ Python всС являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, Ρ†Π΅Π»Ρ‹Π΅ числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, списки, словари, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Ρ‚. Π΄. β€” всС это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π»ΠΈ спСциалисты ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅?

Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых распространСнных вопросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ ΡƒΡ‡Π΅Π½Ρ‹Ρ…, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ…ΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ ООП. Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ манипулирования Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ машинного обучСния с использованиСм Python, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рСкомСндуСтся ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pandas, numpy, matplotlib, scikit-learn. Π­Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Ρ‹Π»ΠΈ написаны ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Python для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ упрощСния Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π·Π°Π΄Π°Ρ‡, связанных с Π½Π°ΡƒΠΊΠΎΠΉ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…. ВсС эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ зависят ΠΎΡ‚ ООП ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ. НапримСр, Π²Ρ‹ строитС Ρ€Π΅Π³Ρ€Π΅ΡΡΠΈΠΎΠ½Π½ΡƒΡŽ модСль, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ scikit-learn. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ свою модСль ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄Π³ΠΎΠ½ΠΊΠΈ. Π‘Π΅Π· знания основ ООП Π²Ρ‹ Π½Π΅ смоТСтС ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π’ python Π² основном сущСствуСт 3 стиля программирования: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΎΡ‰Π΅ говоря, Π΅ΡΡ‚ΡŒ 3 Ρ€Π°Π·Π½Ρ‹Ρ… способа Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Python. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярно срСди спСциалистов ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ прСимущСство Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ООП ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с большими ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ, Π° Ρ€Π΅ΠΌΠΎΠ½Ρ‚ΠΎΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Π°.

Π’Ρ‹Π²ΠΎΠ΄: Π₯ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ основы ООП, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ стоит Π·Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π²Π°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ. Если Π²Ρ‹ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅ΡΡŒ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Python ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Python, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ООП (ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ!). Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ спСциалистов ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с концСпциями ООП ΠΈ всС Π΅Ρ‰Π΅ ΠΏΡ€Π΅ΡƒΡΠΏΠ΅Π²Π°ΡŽΡ‚ Π² своСй Ρ€Π°Π±ΠΎΡ‚Π΅.

ΠžΡΠ½ΠΎΠ²Ρ‹: ООП Π² Python

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, связанныС с ООП Π² Python.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ класс

Класс β€” это Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ описаниС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса. НапримСр, Π΄ΠΈΠ·Π°ΠΉΠ½ автомобиля ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° β€” это класс. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ мноТСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· класса. Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ° ΠΈΠ· конструкции автомобиля.


БущСствуСт мноТСство Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² классов, описанных Π½ΠΈΠΆΠ΅ β€”

  • Π Π΅Ρ†Π΅ΠΏΡ‚ ΠΎΠΌΠ»Π΅Ρ‚Π° β€” это класс. ΠžΠΌΠ»Π΅Ρ‚ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.
  • Π’Π»Π°Π΄Π΅Π»Π΅Ρ† банковского счСта β€” это класс. Атрибутами ΡΠ²Π»ΡΡŽΡ‚ΡΡ Имя, Ѐамилия, Π”Π°Ρ‚Π° роТдСния, ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΡ, АдрСс ΠΈ Ρ‚. Π΄. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Β«Π‘ΠΌΠ΅Π½Π° адрСса», Β«Π‘ΠΌΠ΅Π½Π° профСссии», Β«Π‘ΠΌΠ΅Π½Π° Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈΒ» ΠΈ Ρ‚. Π΄. Β«Π‘ΠΌΠ΅Π½Π° Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈΒ» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠ° ΠΊ ΠΆΠ΅Π½Ρ‰ΠΈΠ½Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ послС замуТСства
  • Π‘ΠΎΠ±Π°ΠΊΠ° β€” это класс. Атрибуты: ΠŸΠΎΡ€ΠΎΠ΄Π°, ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π½ΠΎΠ³, Π Π°Π·ΠΌΠ΅Ρ€, Возраст, Π¦Π²Π΅Ρ‚ ΠΈ Ρ‚. Π΄. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Едят, Бпят, Бидят, Π›Π°ΡŽΡ‚, Π‘Π΅Π³Π°ΡŽΡ‚ ΠΈ Ρ‚. Π΄.

Π’ Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово class . ΠœΠ΅Ρ‚ΠΎΠ΄ класса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом def . Она ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ являСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ класса. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° всСгда являСтся self ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° self .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ класс автомобиля

  • класс : Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ
  • Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ : Π³ΠΎΠ΄, ΠΌΠΈΠ»ΠΈ Π½Π° Π³Π°Π»Π»ΠΎΠ½ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ
  • ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ : ускорСниС ΠΈ Ρ‚ΠΎΡ€ΠΌΠΎΠΆΠ΅Π½ΠΈΠ΅
  • ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ : Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ1
класс автомобиля:
    
    # Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹
        year = 2016 # Π³ΠΎΠ΄ выпуска ΠΌΠΎΠ΄Π΅Π»ΠΈ автомобиля
        миль Π½Π° Π³Π°Π»Π»ΠΎΠ½ = 20 # ΠΏΡ€ΠΎΠ±Π΅Π³
        ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ = 100 # тСкущая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ
        
    # ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
        УскорСниС ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ (само):
            Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ.
ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ + 20 Π΄Π΅Ρ„ Ρ‚ΠΎΡ€ΠΌΠΎΠ·(сам): ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° автомобиля - 50
Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ1=Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ()
car1.ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ()
120
car1.Ρ‚ΠΎΡ€ΠΌΠΎΠ·()
50
Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ1.Π³ΠΎΠ΄
2016
машина1.миль на галлон
20
Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ1.ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ
100
 

Для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ класса ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ company. Π—Π΄Π΅ΡΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΠ° ΠΈ количСство сотрудников, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ β€” Π΄ΠΎΡ…ΠΎΠ΄, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ° (Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для дСмонстрационных Ρ†Π΅Π»Π΅ΠΉ).

# Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ класс Company
класс Компания:
    
    # Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹
    имя = "Π‘Π°Π½ΠΊ XYZ"
    ΠΎΠ±ΠΎΡ€ΠΎΡ‚ = 5000
    Π΄ΠΎΡ…ΠΎΠ΄ = 1000
    количСство_сотрудников = 100
    
    # ΠΌΠ΅Ρ‚ΠΎΠ΄
    ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ (я):
        Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Company.revenue/Company.no_of_employees
 

Атрибуты, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Ρ‹ Π±Π΅Π· создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

НазваниС компании
  Π’Ρ‹Ρ…ΠΎΠ΄ 
Β«XYZ Π‘Π°Π½ΠΊΒ»
Компания.ΠΎΠ±ΠΎΡ€ΠΎΡ‚
  Π’Ρ‹Ρ…ΠΎΠ΄ 
5000
Company.no_of_employees
  Π’Ρ‹Ρ…ΠΎΠ΄ 
100
Компания().ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ()
  Π’Ρ‹Ρ…ΠΎΠ΄ 
10,0
 

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Π½Π΅ΠΉ ΠΊΠ°ΠΊ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ»ΠΈ свойства класса для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово __init__ для создания ΠΌΠ΅Ρ‚ΠΎΠ΄Π° для конструктора. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ обсуТдали ΠΏΡ€ΠΈΠΌΠ΅Ρ€ автомобиля ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ конструкторС ΠΊΠ°ΠΊ ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„Π°Π±Ρ€ΠΈΠΊΠ° построила ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ автомобиля ΠΈΠ· шаблона проСктирования класса. self прСдставляСт Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСт эти свойства.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ экзСмплярами класса. Π‘Π»ΠΎΠ²Π° «экзСмпляр» ΠΈ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Β» взаимозамСняСмы. ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса называСтся экзСмпляр .

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ просим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти значСния. __init__ вызываСтся всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° создаСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса.

классный Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ:
        def __init__(я,имя,фамилия):
            self.first = имя
            self.last = фамилия
ΠΌΠΎΠ΅ имя = Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ("Π”ΠΈΠΏΠ°Π½ΡˆΡƒ", "Π‘Ρ…Π°Π»Π»Π°")
Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ (ΠΌΠΎΠ΅ имя.послСднСС)
 
ΠœΡ‹ создали myname ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса person.
 ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° >>> вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ __init__ >>> ПовСдСниС Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° __init__ выполняСтся 

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π—Π΄Π΅ΡΡŒ привСдСнная Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° основС ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² классС

.
класс Моя компания:
        
    # ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
    def __init__(я, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π΄ΠΎΡ…ΠΎΠ΄, Ρ€Π°Π·ΠΌΠ΅Ρ€ сотрудников):
        self.name = Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
        собствСнный Π΄ΠΎΡ…ΠΎΠ΄ = Π΄ΠΎΡ…ΠΎΠ΄
        self.no_of_employees = количСство сотрудников
    ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ (я):
        Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ self.revenue/self.no_of_employees
Моя компания('Π‘Π°Π½ΠΊ XYZ', 1000,100).ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ()
  Π’Ρ‹Ρ…ΠΎΠ΄ 
10,0
MyCompany('ABC Bank', 5000,200). productivity()
  Π’Ρ‹Ρ…ΠΎΠ΄ 
25,0
 

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса

Π‘Π°Π½ΠΊ = MyCompany('ABC Bank', 5000,200)
MyCompany.productivity(Π‘Π°Π½ΠΊ)
 

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Атрибуты класса Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. БущСствуСт Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: ΠΎΠ΄Π½Π° ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса, Π½ΠΎ Π²Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса, Π° другая ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ __init__ .

ΠŸΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° __int__ доступ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π²Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², называСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ класса ΠΈΠ»ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π² любом мСстС класса. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅.

класс Моя компания:
    #ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ класса
    рост = 0,1
            
    def __init__(я, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π΄ΠΎΡ…ΠΎΠ΄, Ρ€Π°Π·ΠΌΠ΅Ρ€ сотрудников):
        #ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра
        self. name = Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
        собствСнный Π΄ΠΎΡ…ΠΎΠ΄ = Π΄ΠΎΡ…ΠΎΠ΄
        self.no_of_employees = количСство сотрудников
МояКомпания.рост
  0,1 
 

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄ΠΎΡ…ΠΎΠ΄Π° ΠΈΠ· класса MyCompany?

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ

Моя компания.Π΄ΠΎΡ…ΠΎΠ΄
 

AttributeError: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° «Моя компания» Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Β«Π΄ΠΎΡ…ΠΎΠ΄Β»

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ

Π‘Π°Π½ΠΊ = МояКомпания('Π‘Π°Π½ΠΊ DBA',50000, 1000)
Π‘Π°Π½ΠΊ.Π΄ΠΎΡ…ΠΎΠ΄
 

50000

MyCompany.revenue Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊ Π½Π΅ΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ создан.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π’ python Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: экзСмпляр, класс ΠΈ статичСский.

  • ЭкзСмпляр ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ self Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π˜Ρ… Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Object ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ . Π­Ρ‚ΠΎ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ….
  • Класс ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ cls Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. cls относится ΠΊ классу. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ класса Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ @classmethod 9Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ 0010 ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ класс ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ
  • БтатичСский Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ использованиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π² послСднСй части этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π§Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ экзСмпляра ΠΈ класса?

ΠœΠ΅Ρ‚ΠΎΠ΄ экзСмпляра ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свойствам, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ экзСмпляра. ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ класса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свойству класса, Π° Π½Π΅ ΠΊ свойству ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ экзСмпляра этого класса. Π”Ρ€ΡƒΠ³ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния стиля написания Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ self Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ класса ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ cls Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм класс для cab . Вакси ΠΈ такси ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅. Атрибутами ΠΈΠ»ΠΈ свойствами ΠΊΠ°Π±ΠΈΠ½Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ имя водитСля, количСство ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Π±ΠΈΠ½ΠΎΠΉ, мСсто посадки ΠΈ высадки, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅Π·Π΄Π° Π² ΠΊΠ°Π±ΠΈΠ½Π΅ ΠΈ количСство пассаТиров Π² ΠΊΠ°Π±ΠΈΠ½Π΅.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создаСм 3 ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: rateperkm , noofcabs , avgnoofpassengers . ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра, Π° Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… β€” ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса.

  • Ρ€Π΅ΠΉΡ‚ΠΏΠ΅Ρ€ΠΊΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅Π·Π΄Π° Π² такси Π·Π° ΠΊΠΌ, которая рассчитываСтся ΠΏΡƒΡ‚Π΅ΠΌ дСлСния ΠΎΠ±Ρ‰Π΅ΠΉ суммы счСта Π½Π° Π½ΠΎΠΌΠ΅Ρ€. ΠΊΠΌ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½ΠΎ ΠΊΠ°Π±ΠΈΠ½ΠΎΠΉ.
  • noofcabs Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΊΠ°Π±ΠΈΠ½. ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎΠ± агСнтствС такси, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π΅Ρ‚ мноТСством такси ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ, сколько такси занято
  • .
  • avgnoofpassengers Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ срСднСС количСство пассаТиров, ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅. Для расчСта срСднСго значСния ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ всС Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Π±ΠΈΠ½Ρ‹ ΠΈ количСство пассаТиров Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Π±ΠΈΠ½Π΅.
Кабина класса:
    
    #Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ
    количСство ΠΊΠ°Π±ΠΈΠ½ = 0
    количСство пассаТиров = 0
    def __init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,ΠΊΠΌ,мСста,ΠΎΠΏΠ»Π°Ρ‚Π°,пассаТиры):
        self.driver = Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
        Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π³ = ΠΊΠΌ
        self.places = мСста
        сСлф.Π±ΠΈΠ»Π» = ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ
        Cab.numberofcabs = Cab.numberofcabs + 1
        Cab.numpassengers = Cab.numpassengers + пассаТиры
    #Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π½Ρƒ такси Π·Π° ΠΊΠΌ
    def rateperkm(я):
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ self.bill/self.running
        
    #Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Π±ΠΈΠ½
    @классмСтод
    ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ noofcabs (cls):
        Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ cls.numberofcabs
    #Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ срСднСС количСство пассаТиров Π² ΠΊΠ°Π±ΠΈΠ½Π΅
    @классмСтод
    ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ avgnoofpassengers (cls):
        Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ (cls.numpassengers/cls.numberofcabs)
firstcab = Cab("РамСш", 80, ['Π”Π΅Π»ΠΈ', 'Нойда'], 2200, 3)
secondcab = Cab("Π‘ΡƒΡ€Π΅Ρˆ", 60, ['Π“ΡƒΡ€Π³Π°ΠΎΠ½', 'Нойда'], 1500, 1)
Thirdcab = Cab("Дэйв", 20, ['Π“ΡƒΡ€Π³Π°ΠΎΠ½', 'Нойда'], 680, 2)
firstcab. Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
  'РамСш'
 
Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ такси
  'Π‘ΡƒΡ€Π΅Ρˆ'
 
Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΊΠ°Π±.Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
  'Дэйв'
  
firstcab.rateperkm()
  27,5 
secondcab.rateperkm()
  25,0 
Thirdcab.rateperkm()
  34,0 
 
Кабина.noofcabs()
  3
 
Cab.avgnoofpassengers()
  2
  
Cab.avgnoofpassengers() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 2, Ρ‡Ρ‚ΠΎ вычисляСтся ΠΊΠ°ΠΊ (3 + 1 + 2)/3

БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ являСтся Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ популярным срСди всСх Ρ‚Ρ€Π΅Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² экзСмпляра ΠΈ класса, статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово (self, cls). Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ использованиС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½ΠΈ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свойствам экзСмпляра (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°) класса, Π½ΠΈ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ класса. ЕдинствСнноС использованиС - Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π±Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ Π² основном ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для создания Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ слуТСбных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΠΌΠ΅Π½ΠΈ водитСля (имя водитСля Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ мСньшС 32 символов) ΠΈΠ»ΠΈ сумма счСта Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ большС нуля (Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ»ΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ). Π‘ΠΌ. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½ΠΈΠΆΠ΅ для Ρ‚ΠΎΠΉ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

Кабина класса:
    
    @статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄
    Π΄Π΅Ρ„ Π±ΠΈΠ»Π»ΠΈΠ½Π³Π° (ΠΎΠΏΠ»Π°Ρ‚Π°):
        Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ int (ΠΎΠΏΠ»Π°Ρ‚Π°)> 0
Cab.billvalidation(0,2)
  Π’Ρ‹Ρ…ΠΎΠ΄ 
Π›ΠžΠ–Π¬
 

НаслСдство

НаслСдованиС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ для класса Children , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π±Ρ‹Π» написан для класса Parent . НапримСр, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ класса транспортного срСдства ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с классами Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, автобусов ΠΈ Π³Ρ€ΡƒΠ·ΠΎΠ²ΠΈΠΊΠΎΠ². Имя водитСля, количСство колСс ΠΈ Ρ‚. Π΄. ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ для всСх классов. ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса ΠΈ ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ, автобус ΠΈ Π³Ρ€ΡƒΠ·ΠΎΠ²ΠΈΠΊ относятся ΠΊ классам Π΄Π΅Ρ‚Π΅ΠΉ . Π’ ООО это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ класс наслСдуСт Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ повСдСния ΠΎΡ‚ своСго Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса.

  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс Vehicle ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ для Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класса Vehicle . Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ класса cab. Он наслСдуСтся ΠΎΡ‚ транспортного срСдства.
класс ВранспортноС срСдство:
    def __init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья):
        self.driver = Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
        self.noofwheels = колСса
        self.noofseats = мСста
класс Кабина(ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ):
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
cab_1 = Кабина («Бэнди», 4, 2)
ΠΊΠ°Π±ΠΈΠ½Π°_1.Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
  Π’Ρ‹Ρ…ΠΎΠ΄ 
'Бэнди'
 
  • Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ класса подкласса ВранспортноС срСдство
  • класс ВранспортноС срСдство:
        минимальная ставка = 50
        def __init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья):
            self.driver = Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
            self.noofwheels = колСса
            self.noofseats = мСста
    класс Кабина(ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ):
        минимальная ставка = 75
    ВранспортноС срСдство.минимальная ставка
      50 
    Минимальная ставка ΠΊΠ°Π±ΠΈΠ½Ρ‹
      75 
     
  • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс с большим количСством ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‡Π΅ΠΌ Ρƒ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса
  • Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° класса Cab ΠΈ Bus , Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎ схоТих Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… для Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΌΡ‹ создали Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ Vehicle , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΎΠ±Ρ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄.

    класс ВранспортноС срСдство:
        минимальная ставка = 50
        def __init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья,ΠΊΠΌ,счСт):
            self.driver = Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
            self.noofwheels = колСса
            self.noofseats = мСста
            Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π³ = ΠΊΠΌ
            сСлф.Π±ΠΈΠ»Π» = счСт
        
        def rateperkm(я):
            Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ self.bill/self.running
    класс Кабина(ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ):
        минимальная ставка = 75
        def __init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья,ΠΊΠΌ,счСт,Ρ‚ΠΈΠΏ ΠΊΠ°Π±ΠΈΠ½Ρ‹):
            Vehicle.__init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья,ΠΊΠΌ,счСт)
            self.category = Ρ‚ΠΈΠΏ такси
    Класс Автобус(ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ):
        минимальная ставка = 25
        def __init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья,ΠΊΠΌ,счСт,Ρ†Π²Π΅Ρ‚):
            Vehicle.__init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья,ΠΊΠΌ,счСт)
            self.color = Ρ†Π²Π΅Ρ‚
    cab_1 = Cab('Prateek', 4, 3, 50, 700, 'Π’Π½Π΅Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΈΠΊ')
    cab_1.катСгория
    cab_1.rateperkm()
    bus_1 = Bus('Дэйв', 4, 10, 50, 400, 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ')
    bus_1. Ρ†Π²Π΅Ρ‚
    bus_1.rateperkm()
     
    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Vehicle.__init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья,ΠΊΠΌ,счСт) Π½Π° super().__init__(Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья,ΠΊΠΌ,счСт) .
    super() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ссылки Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

    ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ

    ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ ваТная концСпция, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ с Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ классами. ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π² python примСняСтся Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° .

    ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

    ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° позволяСт Π½Π°ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΌ классС с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС, Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ класса отличаСтся ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса.

    класс ВранспортноС срСдство:
        Π·Π°Ρ‰ΠΈΡ‚Π½ΠΎΠ΅ сообщСниС (я):
            print("ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса")
    класс Кабина(ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ):
        Π·Π°Ρ‰ΠΈΡ‚Π½ΠΎΠ΅ сообщСниС (я):
            print("ΠœΠ΅Ρ‚ΠΎΠ΄ класса Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ ΠΊΠ°Π±ΠΈΠ½Ρ‹")
    Класс Автобус(ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ):
        Π·Π°Ρ‰ΠΈΡ‚Π½ΠΎΠ΅ сообщСниС (я):
            print("ΠœΠ΅Ρ‚ΠΎΠ΄ класса Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ ΡˆΠΈΠ½Ρ‹")
    Ρ… = ВранспортноС срСдство ()
    Ρ…. сообщСниС()
      ΠœΠ΅Ρ‚ΠΎΠ΄ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса 
    Ρƒ = ΠΊΠ°Π±ΠΈΠ½Π° ()
    Ρƒ.сообщСниС()
      ΠœΠ΅Ρ‚ΠΎΠ΄ класса Child Cab 
    Π³ = автобус ()
    z.сообщСниС()
      ΠœΠ΅Ρ‚ΠΎΠ΄ класса Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅ΠΉ ΡˆΠΈΠ½Ρ‹ 
     

    Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅, Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса.

    ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

    Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ с Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ со всСми Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

    Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ сцСнарии ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° (игнорируя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„Ρ€Π°Π·Ρ‹). Или Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ , Ρ„Ρ€Π°Π·ΠΎΠΉ .

    Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ класса:
        Π΄Π΅Ρ‚Π°Π»ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ (я, Ρ„Ρ€Π°Π·Π° = Π½Π΅Ρ‚):
        
            Ссли Ρ„Ρ€Π°Π·Π° Π½Π΅ None:
                print('МоС сообщСниС - ' + Ρ„Ρ€Π°Π·Π°)
            Π΅Ρ‰Π΅:
                print('Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΈΡ€ Python')
            
    # ΠžΠ±ΡŠΠ΅ΠΊΡ‚
    Ρ… = сообщСниС ()
        
    # Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²
    Ρ…. Π΄Π΅Ρ‚Π°Π»ΠΈ()
        
    # Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ
    x.details('Π–ΠΈΠ·Π½ΡŒ прСкрасна')
     

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ __str__?

    Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ прСдставлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

    класс ВранспортноС срСдство:
        def __init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья):
            self.driver = Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
            self.noofwheels = колСса
            self.noofseats = мСста
    veh_1 = ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ ("ΠŸΠ΅ΡΡ‡Π°Π½Ρ‹ΠΉ", 4, 2)
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (veh_1)
      Π’Ρ‹Ρ…ΠΎΠ΄ 
     __main__.ΠžΠ±ΡŠΠ΅ΠΊΡ‚ транспортного срСдства ΠΏΠΎ адрСсу 0x0000019ECCCA05F8
     
    класс ВранспортноС срСдство:
        def __init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,колСса,сидСнья):
            self.driver = Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
            self.noofwheels = колСса
            self.noofseats = мСста
        Π·Π°Ρ‰ΠΈΡ‚Π° __str__(я):
            return "Имя водитСля:" + self.driver + ";" + "ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ мСст Π² ΠΊΠ°Π±ΠΈΠ½Π΅:" + str(self.noofseats)
    veh_1 = ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ ("ΠŸΠ΅ΡΡ‡Π°Π½Ρ‹ΠΉ", 4, 2)
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (veh_1)
      Π’Ρ‹Ρ…ΠΎΠ΄ 
    Имя водитСля: Бэнди;
    ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ мСст Π² ΠΊΠ°Π±ΠΈΠ½Π΅: 2
     

    Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ…

    Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ доступа ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ случайноС (ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ΅) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

    • Когда ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄Π²Π° символа подчСркивания '__' ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, это Π΄Π΅Π»Π°Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ нСдоступным Π²Π½Π΅ класса. Он становится Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ , Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ эти Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ модуля.
    • Если Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, это общСдоступный Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ , доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈΠ»ΠΈ Π²Π½Π΅ класса.
    класс ΠšΠ²Π°Ρ€Ρ‚ΠΈΡ€Π°:
        Π·Π°Ρ‰ΠΈΡ‚Π° __init__(сам):
            self.type = "ΠΏΡ€Π΅ΠΌΠΈΡƒΠΌ"
            self.__bhk = "3 BHK"
    flat_1 = ΠšΠ²Π°Ρ€Ρ‚ΠΈΡ€Π°()
    ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π°_1.Ρ‚ΠΈΠΏ
    прСмия
    flat_1.__bhk
    AttributeError: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ «Плоский» Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Β«__bhkΒ»
     

    Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ type являСтся общСдоступным Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, Π° bhk β€” ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ нСльзя ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ класса.

    Π”ΠΎΠ±Ρ‹Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈ сСттСры

    Они ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для получСния ΠΈ обновлСния значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π‘Π΅Ρ‚Ρ‚Π΅Ρ€ β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обновляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Getter β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ считываСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ·Π½Π°Π΅ΠΌ это Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

    класс ВранспортноС срСдство:
        def __init__(я,имя_водитСля,фамилия_водитСля):
            self.fdriver = имя_водитСля
            self.ldriver = фамилия_водитСля
            self.email = self.fdriver + '.' + self.ldriver + '@uber.com'
    veh_1 = ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ ("Бэнди", "Π‘Ρ‚ΡŽΠ°Ρ€Ρ‚")
    veh_1.fΠ΄Ρ€Π°ΠΉΠ²Π΅Ρ€
      Бэнди 
    veh_1.email
      'Бэнди.Π‘Ρ‚ΡŽΠ°Ρ€Ρ‚@uber.com'
     
     

    Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ обновляСм имя водитСля, Π½ΠΎ это Π½Π΅ влияСт Π½Π° адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ.

    veh_1.fdriver = 'Π’ΠΎΠΌ'
    veh_1.fΠ΄Ρ€Π°ΠΉΠ²Π΅Ρ€
      'Π’ΠΎΠΌ' 
    veh_1.email
      'Бэнди.Π‘Ρ‚ΡŽΠ°Ρ€Ρ‚@uber.com'
      

    Имя Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ с Бэнди Π½Π° Π’ΠΎΠΌ, Π½ΠΎ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ остался ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ. Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ вопрос Β«ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹?Β». Π‘ использованиСм @property Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹. email(self) β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄, Π½ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ свойство. Π­Ρ‚ΠΎΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ называСтся Getters and Setters

    .
    класс ВранспортноС срСдство:
        def __init__(я,имя_водитСля,фамилия_водитСля):
            self.fdriver = имя_водитСля
            self.ldriver = фамилия_водитСля
            
        @имущСство
        адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ (я):
            Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ self.fdriver + '.' + self.ldriver + '@uber.com'
    veh_1 = ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ ("Бэнди", "Π‘Ρ‚ΡŽΠ°Ρ€Ρ‚")
    veh_1.fdriver = 'Π’ΠΎΠΌ'
    veh_1.email
      '[email protected]' 
     

    Как автоматичСски ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ имя ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹

    класс ВранспортноС срСдство:
        def __init__(я,имя_водитСля,фамилия_водитСля):
            self.fdriver = имя_водитСля
            self.ldriver = фамилия_водитСля
            
        @имущСство
        адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ (я):
            Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ self.fdriver + '.' + self.ldriver + '@uber.com'
        @email.setter
        адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ (я, адрСс):
            ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ = адрСс[:address. find('.')]
            послСдний = адрСс[address.find('.')+1:address.find('@')]
            self.fdriver = ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ
            self.ldriver = послСдний
    veh_1 = ΠΠ²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ ("Бэнди", "Π‘Ρ‚ΡŽΠ°Ρ€Ρ‚")
    veh_1.email = '[email protected]'
    veh_1.fΠ΄Ρ€Π°ΠΉΠ²Π΅Ρ€
      'Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ' 
    veh_1.lΠ΄Ρ€Π°ΠΉΠ²Π΅Ρ€
      'Π±Ρ…Π°Π»Π»Π°' 
     

    Валидация

    Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ Π³Π΅Ρ‚Ρ‚Π΅Ρ€Ρ‹ ΠΈ сСттСры Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм класс ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ суммы. Π‘ΡƒΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 10 Π΄ΠΎ 1Β 000Β 000. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ мСньшС 10, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ установлСно ΠΊΠ°ΠΊ 10. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ пытаСтся ввСсти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ большС 1 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠΌ.

    ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ класса:
        def __init__(я, количСство):
            ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ сумма = сумма
            
        @имущСство
        Π‘ΡƒΠΌΠΌΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ (я):
            Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ сСбя.__сумма
        @amount.setter
        сумма Π·Π°Ρ‰ΠΈΡ‚Ρ‹ (я, сумма):
            Ссли сумма 1000000:
                сам. __сумма = 1000000
            Π΅Ρ‰Π΅:
                self.__amount = количСство
    Π±Π»Π°Π³ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ = ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ (5)
    Π±Π»Π°Π³ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.сумма
      10 
     

    Как ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ класс

    Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ расскаТСм, ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ класс ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

    1. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скрипт ΠΊΠ°ΠΊ Mymodule.py
    2. """
      Класс автомобиля
      """
      Кабина класса:
          
          #Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ
          количСство ΠΊΠ°Π±ΠΈΠ½ = 0
          def __init__(я,Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ,ΠΊΠΌ,ΠΎΠΏΠ»Π°Ρ‚Π°):
              self.driver = Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
              Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π³ = ΠΊΠΌ
              сСлф.Π±ΠΈΠ»Π» = ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ
              Cab.numberofcabs = Cab.numberofcabs + 1
          #Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΡ€Π΅Π΄Π½ΡŽΡŽ Ρ†Π΅Π½Ρƒ Π·Π° ΠΊΠΌ
          def rateperkm(я):
              Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ self.bill/self.running
              
          #Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Π±ΠΈΠ½
          @классмСтод
          ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ noofcabs (cls):
              Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ cls.numberofcabs
      Ссли __name__ == "__main__":
          
          #Класс такси
          firstcab = Cab("РамСш", 80, 1200)
          Атрибут #driver Π² классС Cab
          ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (firstcab. driver)
          
          #ΠΌΠ΅Ρ‚ΠΎΠ΄ класса
          ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Cab.noofcabs())
       
    3. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранится Ρ„Π°ΠΉΠ» Mymodule.py
    4. ΠΈΠΌΠΏΠΎΡ€Ρ‚ ОБ
      os.chdir("C:/ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ/DELL/Π Π°Π±ΠΎΡ‡ΠΈΠΉ стол/")
      ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ
       
    5. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ запуститС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ имя модуля Π² качСствС прСфикса ΠΏΠ΅Ρ€Π΅Π΄ использованиСм класса ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса
    6. .
      #Класс ΠΊΠ°Π±ΠΈΠ½Ρ‹ Π² Mymodule.py
      firstcab = Mymodule.Cab("РамСш", 80, 1200)
      Атрибут #driver Π² классС ΠΊΠ°Π±ΠΈΠ½Ρ‹
      firstcab.Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ
      ΠœΠ΅Ρ‚ΠΎΠ΄ экзСмпляра #rateperkm Π² Mymodule2.py
      firstcab.rateperkm()
      ΠœΠ΅Ρ‚ΠΎΠ΄ класса #noofcabs Π² Mymodule2.py
      Мой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.Cab.noofcabs()
       
      Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ написания ΠΈΠΌΠ΅Π½ΠΈ модуля для доступа ΠΊ классу, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«ΠΈΠ·Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ пространство ΠΈΠΌΠ΅Π½.
      ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Mymodule *
      firstcab = Cab("Бэнди", 80, ['Π”Π΅Π»ΠΈ', 'Нойда'], 1200, 3)
       

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ __name__ == "__main__"?

    Π›ΡŽΠ±ΠΎΠΉ ΠΊΠΎΠ΄, находящийся Π²Π½ΡƒΡ‚Ρ€ΠΈ , Ссли __name__ == '__main__': , Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСтС Ρ„Π°ΠΉΠ» . py Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°).

    Если Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ , ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Mymodule , ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ if __name__ == '__main__': Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это, сохранитС ΠΈ запуститС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ скрипт ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊ Π½Π΅ΠΌΡƒ доступ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.

    Ссли __name__ == '__main__':
        print('ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚')
    Π΅Ρ‰Π΅:
        print('Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚')
     

    Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

    Π’Π²Π΅Π΄ΠΈΡ‚Π΅ cd , Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π΅Π» ΠΈ имя ΠΏΠ°ΠΏΠΊΠΈ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ установлСн, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти имя вашСго Ρ„Π°ΠΉΠ»Π° сцСнария Python. Π‘ΠΌ. снимок Π½ΠΈΠΆΠ΅.

    Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅

    Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ класс Rectangle с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Π΄Π»ΠΈΠ½Ρ‹ ΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρ‹. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ 2 ΠΌΠ΅Ρ‚ΠΎΠ΄Π° для вычислСния ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΈ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. ΠŸΠ»ΠΎΡ‰Π°Π΄ΡŒ рассчитываСтся ΠΏΡƒΡ‚Π΅ΠΌ умноТСния Π΄Π»ΠΈΠ½Ρ‹ Π½Π° ΡˆΠΈΡ€ΠΈΠ½Ρƒ. ΠŸΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€ Π² 2 Ρ€Π°Π·Π° большС (Π΄Π»ΠΈΠ½Π°+ΡˆΠΈΡ€ΠΈΠ½Π°). Π Π΅ΡˆΠΈΡ‚Π΅ ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠΉΡ‚Π΅ своС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅ для ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

    ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ этого руководства Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ прСдставлСниС ΠΎ Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ‚Π΅ΠΌΠ°Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Python. Π’Π°ΡˆΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² своих ΠΆΠΈΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

    ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Python

    2 ΠžΡ†Π΅Π½ΠΊΠΈ

    57 УРОКИ

    11 Π—ΠΠ”Π•Π›Π•ΠΠ˜Π―

    65 ΠŸΠ Π•Π˜ΠœΠ•Π Π«

    69 Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ

    ПАВА ПИВАНА. язык для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ спСциалистов ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ. Π Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ свои возмоТности трудоустройства с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ€ΠΎΠΊΠΎΠ², Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²Ρ‹.

    5 ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

    ΠŸΡƒΡ‚ΡŒ исслСдования

    ΠžΠ±Π·ΠΎΡ€ курса

    ΠΠ°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ чистый, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° Python, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ магистра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (ООП). Π’Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ с основ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊ Π±ΠΎΠ»Π΅Π΅ слоТным концСпциям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ наслСдованиС, сокрытиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„... Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠ»Π°Π²Π°Ρ‚ΡŒ, наблюдая Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΉΡ‚Π΅ΡΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ, Π² срСдС ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

    БыстрСС, Ρ‡Π΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎ

    Π’ΠΈΠ΄Π΅ΠΎ ΡΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ вас. Π’ срСднСм Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ произносится со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 150 слов Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ, Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 250. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ наши курсы основаны Π½Π° тСкстС.

    Настройка Π½Π΅ трСбуСтся

    НСмСдлСнно приступайтС ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ, вмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ с SDK ΠΈ IDE. Π­Ρ‚ΠΎ всС Π² ΠΎΠ±Π»Π°ΠΊΠ΅.

    ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ

    ВстроСнныС тСсты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свои Π½Π°Π²Ρ‹ΠΊΠΈ. Π‘Π΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚Ρ‹ ΠΎΠ± ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡ… ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ.

    Π‘Ρ€Π΅Π΄Ρ‹ для практичСского программирования

    Π’Ρ‹ Π½Π΅ станСтС Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠ»Π°Π²Π°Ρ‚ΡŒ, наблюдая Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΉΡ‚Π΅ΡΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ, Π² срСдС ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

    БыстрСС, Ρ‡Π΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎ

    Π’ΠΈΠ΄Π΅ΠΎ ΡΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ вас. Π’ срСднСм Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ произносится со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 150 слов Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ, Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ 250. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ наши курсы основаны Π½Π° тСкстС.

    Настройка Π½Π΅ трСбуСтся

    НСмСдлСнно приступайтС ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ, вмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ с SDK ΠΈ IDE. Π­Ρ‚ΠΎ всС Π² ΠΎΠ±Π»Π°ΠΊΠ΅.

    ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ

    ВстроСнныС тСсты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свои Π½Π°Π²Ρ‹ΠΊΠΈ. Π‘Π΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚Ρ‹ ΠΎΠ± ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡ… ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ.

    Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ курса

    1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

    ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² соврСмСнныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ языки

    2. ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

    Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ классы ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступаБыстрый тСст!Π—Π°Π΄Π°Π½ΠΈΠ΅ 1. Π’ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ чисСл Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΈΡ… ΡΡƒΠΌΠΌΡ‹ΠžΠ±Π·ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ 1. Π’ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ чисСл Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΡ… суммыЗаданиС 2. РасчСт успСваСмости ΡƒΡ‡Π°Ρ‰Π΅Π³ΠΎΡΡΠžΠ±Π·ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ 2. РасчСт успСваСмости учащСгосяЗаданиС 3. РСализация класса ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° ΠžΠ±Π·ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ 3. РСализация ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° Класс

    3. Π‘ΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сокрытиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ?EncapsulationGetters ΠΈ SettersПониманиС инкапсуляции с использованиСм примСровБыстрый тСст!Π—Π°Π΄Π°Π½ΠΈΠ΅ 1. РСализация класса Rectangle с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Encapsulation. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. РСализация класса Rectangle с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Encapsulation. Π—Π°Π΄Π°Ρ‡Π° 2. РСализация ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ студСнчСского класса. ΠžΡ†Π΅Π½ΠΊΠ° курса

    Π­ΠΊΠ·Π°ΠΌΠ΅Π½ 1

    5. НаслСдованиС

    Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ наслСдованиС?Бинтаксис ΠΈ тСрминологияБупСрфункцияВипы Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° наслСдованияБыстрый тСст!Π—Π°Π΄Π°Π½ΠΈΠ΅ 1. Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ банковского счСта. ΠžΠ±Π·ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ банковского счСта. банковский счСт

    6.

    ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *