Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

ПониманиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса ΠΈ экзСмпляра Π² Python 3

ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π½Π° Python ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ нСсколько слоТностСй, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ разграничСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса ΠΈ экзСмпляра. Π’ этом руководствС я объясню Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ класса ΠΈ экзСмпляра ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса ΠΈ экзСмпляра

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ любого Ρ‚ΠΈΠΏΠ° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°ΠΌΠΈ: Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ учащСгося Π² этом классС ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π½ΠΎΠΌΠ΅Ρ€ ΠΈ ΠΎΠ΄ΠΈΠ½ ΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ, Π½ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя, возраст ΠΈ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ для всСх экзСмпляров. И ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚Π°ΠΊ:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр класса Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…) ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра класса ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ класса, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ содСрТит ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ name:

РСзюмС

Π­Ρ‚ΠΎ Π±Ρ‹Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса ΠΈ экзСмпляра. ΠœΡ‹ углубимся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги, Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ для всСх экзСмпляров класса, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра.

Π§Π΅Π³ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ для всСх экзСмпляров класса. НапоминаСм, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚Π°ΠΊ:

Π˜Π½Ρ‹ΠΌΠΈ словами, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ мСсто Π² памяти. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Ѐункция id Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ адрСс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² памяти для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ CPython.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ id ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ teacher ссылаСтся Π½Π° Ρ‚ΠΎ ΠΆΠ΅ мСсто Π² памяти.

ИзмСнСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ класса

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ класса Π΄Π°ΠΆΠ΅ послС создания экзСмпляров?

Как ΠΈ слСдовало ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пСрСмСнная teacher ссылаСтся Π½Π° ΠΎΠ±Ρ‰Π΅Π΅ мСстополоТСниС Π² памяти, ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ обновляСтся Π² экзСмплярС.

ИзмСнСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ экзСмпляра

Π­Ρ‚ΠΎ, вСроятно, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ΅ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, поэтому Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этот шаг. Но я всС ΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΡƒ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹.

Рассмотрим наш класс Student с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ класса ΠΈ экзСмпляра:

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр класса ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ адрСс памяти для ΠΈΠΌΠ΅Π½ΠΈ:

Как ΠΈ слСдовало ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° name Π² ΠΎΠ΄Π½ΠΎΠΌ экзСмплярС Π½Π΅ влияСт Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса (ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹)

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра (ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…) ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ teacher прямо Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· случаСв:

Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляров Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ, ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ класса. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² экзСмплярС Tom teacher большС Π½Π΅ ссылаСтся Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ класса, Π° Π½Π° вновь ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ экзСмпляра.

И, СстСствСнно, экзСмпляр БьюзСн Π½Π΅ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚:

НадСюсь, Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π΅. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Если пСрСмСнная объявлСна ΠΊΠ°ΠΊ пСрСмСнная класса, ΠΎΠ½Π° (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ) Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… мСстах, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅Ρ‚ΠΎΠ΄ __init__. Часто Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π³Π»Π°Π³ΠΎΠ»Π°ΠΌΠΈ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… экзСмпляра с прСфиксом Β«_Β».

ИспользованиС измСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² качСствС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса

Π’ связи с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ шагом, Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны ΠΏΡ€ΠΈ использовании измСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² качСствС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½Ρ‹ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² тСстов студСнта. ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ класс:

Π£ нас Π΅ΡΡ‚ΡŒ пСрСмСнная класса для хранСния Π±Π°Π»Π»ΠΎΠ², ΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ класса для добавлСния Π±Π°Π»Π»ΠΎΠ². Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ нСсколько Π±Π°Π»Π»ΠΎΠ².

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сдСлали?

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΉ класс ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ наша ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½Π°!

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

НадСюсь, Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ класса ΠΈ экзСмпляра ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ…. Если я Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ упустил Π² этом руководствС ΠΈΠ»ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса ΠΈ экзСмпляра, поТалуйста, ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½ΠΈΠΆΠ΅. Π― Π±Ρ‹Π» Π±Ρ‹ Ρ€Π°Π΄ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π² это руководство!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с классами Π² Python

Python β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык с Π½Π°Ρ‡Π°Π»Π° Π΅Π³ΠΎ сущСствования. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, созданиС ΠΈ использованиС классов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Python просто ΠΈ Π»Π΅Π³ΠΊΠΎ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π² области ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Python. Если Ρƒ вас Π½Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (OOП), ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Π²Π²ΠΎΠ΄Π½Ρ‹ΠΌ курсом ΠΈΠ»ΠΈ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΌ пособиСм, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ основныС понятия.

БозданиС классов

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания класса Π½Π° Python:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ экзСмпляров класса

Доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, систСматизируСм всС.

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этого ΠΊΠΎΠ΄Π°, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ классов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚.

ВмСсто использования ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для доступа ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ВстроСнныС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ класса

Для Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ класса Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΠΎ всСм этим Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ:

Когда этот ΠΊΠΎΠ΄ выполняСтся, ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (сбор мусора)

Python автоматичСски удаляСт Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (встроСнныС Ρ‚ΠΈΠΏΡ‹ ΠΈΠ»ΠΈ экзСмпляры классов), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ пространство памяти. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ процСсса β€˜Garbage Collection’ Python пСриодичСски восстанавливаСт Π±Π»ΠΎΠΊΠΈ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора Python запускаСтся Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° количСство ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ достигаСт нуля. Π‘ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ количСства ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π½Π΅ΠΌΡƒ, мСняСтся количСство ссылок.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ __del__()
ДСструктор __del__() Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ имя класса Ρ‚ΠΎΠ³ΠΎ экзСмпляра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½:

Когда Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ выполняСтся ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

НаслСдованиС класса в python

НаслСдованиС β€” это процСсс, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ класс наслСдуСт Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Класс, Ρ‡ΡŒΠΈ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ БупСрклассом. А класс, свойства ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ β€” класс-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ ΠΈΠ»ΠΈ Подкласс.

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с нуля, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс, Π½Π° основС ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ класс Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках послС ΠΈΠΌΠ΅Π½ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ класса.

Класс наслСдник наслСдуСт Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ своСго Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² классС наслСдникС. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ родитСля.

Бинтаксис наслСдования класса

ΠšΠ»Π°ΡΡΡ‹ наслСдники ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ классы. Волько, список наслСдуСмых классов, ΡƒΠΊΠ°Π·Π°Π½ послС ΠΈΠΌΠ΅Π½ΠΈ класса.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

BestProg

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

Поиск Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… рСсурсах:

1. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ использования классов Π² языкС Python. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ классов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ экзСмпляров

Π’ языкС программирования Python классы Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ особСнностями:

Как извСстно, Π² языкС Python любой элСмСнт (число, строка, список ΠΈ Ρ‚.Π΄) прСдставлСн ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Π­Ρ‚ΠΎ касаСтся ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Python, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°

На основании ΠΈΠΌΠ΅Π½ΠΈ ClassName ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создан Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ экзСмпляра.

3. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° экзСмпляра. ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ°

ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° экзСмпляра ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

4. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² классов

Π’ языкС Python для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² классов ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ особСнности:

5. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² экзСмпляров

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ экзСмпляра Π΅ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² экзСмпляров ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ особСнности:

6. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ класса? ΠŸΡ€ΠΈΠΌΠ΅Ρ€ класса Circle

Атрибутом класса считаСтся элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² классС. Π’Π°ΠΊΠΈΠΌ элСмСнтом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠΎΠ»Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚.Π΄.

Π’ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ классС Circle Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹:

7. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ объявлСния ΠΈ использования простого класса, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰Π΅Π³ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

На рисункС 1 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅. 11 01 02 13 01r. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ Ρ„ΠΎΡ‚ΠΎ. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅-11 01 02 13 01r. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 11 01 02 13 01r. ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π½Π° Python ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ нСсколько слоТностСй, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ разграничСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса ΠΈ экзСмпляра. Π’ этом руководствС я объясню Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ класса ΠΈ экзСмпляра ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования.

Рисунок 1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ экзСмпляра ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса

8. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сохраняСт Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…. Класс SquareEquation β€” Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ уравнСния

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Python. Π£Ρ€ΠΎΠΊ 14. ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Π”Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ посвящСн ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² Python. Π Π°Π·ΠΎΠ±Ρ€Π°Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ ΠΊΠ°ΠΊ созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ классов, Ρ€Π°Π±ΠΎΡ‚Π° с конструктором, наслСдованиС ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π² Python.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ООП) являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π² основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π»Π΅ΠΆΠΈΡ‚ понятиС класса ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΈ этом сама ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСтся ΠΊΠ°ΠΊ нСкоторая ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈ с внСшним ΠΌΠΈΡ€ΠΎΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ являСтся экзСмпляром Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ класса. ΠšΠ»Π°ΡΡΡ‹ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎ понятии ООП ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ.

Π’Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ Ρ‚Ρ€ΠΈ основных β€œΡΡ‚ΠΎΠ»ΠΏΠ°β€ ООП- это инкапсуляция, наслСдованиС ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ.

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

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

Под наслСдованиСм понимаСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ класса Π½Π° Π±Π°Π·Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ. НаслСдованиС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ β€œΡΠ²Π»ΡΠ΅Ρ‚ΡΡβ€ ΠΌΠ΅ΠΆΠ΄Ρƒ классом наслСдником ΠΈ классом Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€ΠΈ этом класс ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс, Π½ΠΎ ΠΏΡ€ΠΈ этом Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ (ΠΈ Π½ΡƒΠΆΠ½ΠΎ) Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ наслСдованиС, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ класс β€œΠ°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒβ€, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹: масса, ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ двигатСля, объСм Ρ‚ΠΎΠΏΠ»ΠΈΠ²Π½ΠΎΠ³ΠΎ Π±Π°ΠΊΠ° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: завСсти ΠΈ Π·Π°Π³Π»ΡƒΡˆΠΈΡ‚ΡŒ. Π£ Ρ‚Π°ΠΊΠΎΠ³ΠΎ класса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ – β€œΠ³Ρ€ΡƒΠ·ΠΎΠ²ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒβ€, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ класс β€œΠ°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒβ€, ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свойства: количСство осСй, ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ компрСссора ΠΈ Ρ‚.ΠΏ..

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

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ позволяСт ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹ΠΉ интСрфСйс, нСзависимо ΠΎΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр, с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса β€œΠ³Ρ€ΡƒΠ·ΠΎΠ²ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒβ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса β€œΠ°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒβ€, Ρ‚.ΠΊ. ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ являСтся наслСдником Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ этом ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅Π²Π΅Ρ€Π½ΠΎ (Π²ΠΎ всяком случаС Π½Π΅ всСгда). Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ наслСдовании, ΠΊΠΎΠ³Π΄Π° Π² классС наслСдникС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса родитСля.

ΠšΠ»Π°ΡΡΡ‹ Π² Python

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ классов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ класса Π² Python начинаСтся с инструкции class. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс.

Класс состоит ΠΈΠ· объявлСния (инструкция class), ΠΈΠΌΠ΅Π½ΠΈ класса (нашСм случаС это имя C) ΠΈ Ρ‚Π΅Π»Π° класса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (Π² нашСм минимальном классС Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° инструкция pass).

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ синтаксисом:

имя_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° = имя_класса()

БтатичСскиС ΠΈ динамичСскиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ класса

Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅, класс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Атрибут ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ статичСским ΠΈ динамичСским (уровня ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса). Π‘ΡƒΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со статичСским Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляр класса, Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с динамичСским – Π½ΡƒΠΆΠ½ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’ прСдставлСнном Π²Ρ‹ΡˆΠ΅ классС, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ default_color – это статичСский Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΠΈ доступ ΠΊ Π½Π΅ΠΌΡƒ, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ создавая ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Rectangle.

width ΠΈ height – это динамичСскиС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΏΡ€ΠΈ ΠΈΡ… создании Π±Ρ‹Π»ΠΎ использовано ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово self. Пока просто ΠΏΡ€ΠΈΠΌΠΈΡ‚Π΅ это ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎ self Π±ΡƒΠ΄Π΅Ρ‚ рассказано Π½ΠΈΠΆΠ΅. Для доступа ΠΊ width ΠΈ height ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Rectangle:

Если ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· класс, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

ΠŸΡ€ΠΈ этом, Ссли Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ статичСскому Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ Ρ‡Π΅Ρ€Π΅Π· экзСмпляр класса, Ρ‚ΠΎ всС Π±ΡƒΠ΄Π΅Ρ‚ ОК, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π΅Π³ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π΅Ρ‰Ρ‘ Ρ€Π°Π· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° default_color:

ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΠΌ Π΅ΠΌΡƒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Rectangle ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ default_color Ρƒ Π½ΠΈΡ… совпадаСт:

Если ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ default_color Ρ‡Π΅Ρ€Π΅Π· имя класса Rectangle, Ρ‚ΠΎ всС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ: Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² r1 ΠΈ r2 это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСнится, Π½ΠΎ Ссли ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· экзСмпляр класса, Ρ‚ΠΎ Ρƒ экзСмпляра Π±ΡƒΠ΄Π΅Ρ‚ создан Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ°ΠΊ статичСский, Π° доступ ΠΊ послСднСму Π±ΡƒΠ΄Π΅Ρ‚ потСрян:

МСняСм default_color Ρ‡Π΅Ρ€Π΅Π· r1:

ΠŸΡ€ΠΈ этом Ρƒ r2 остаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ статичСского Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°:

Π’ΠΎΠΎΠ±Ρ‰Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ – Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ идСя, Π»ΡƒΡ‡ΡˆΠ΅ для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойства.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса

Π”ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ классу ΠΌΠ΅Ρ‚ΠΎΠ΄. ΠœΠ΅Ρ‚ΠΎΠ΄ – это функция, находящаяся Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ статичСскими, классовыми (срСднСС ΠΌΠ΅ΠΆΠ΄Ρƒ статичСскими ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ) ΠΈ уровня класса (Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ просто словом ΠΌΠ΅Ρ‚ΠΎΠ΄). БтатичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ создаСтся с Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ @staticmethod, классовый – с Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ @classmethod, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π² Π½Π΅Π³ΠΎ пСрСдаСтся cls, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ создаСтся Π±Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°, Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ пСрСдаСтся self:

БтатичСский ΠΈ классовый ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ, Π½Π΅ создавая экзСмпляр класса, для Π²Ρ‹Π·ΠΎΠ²Π° ex_method() Π½ΡƒΠΆΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚:

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса ΠΈ инициализация экзСмпляра класса

Π’ Python Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ конструктор класса ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ экзСмпляра класса. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса это ΠΌΠ΅Ρ‚ΠΎΠ΄ __new__(cls, *args, **kwargs) для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ экзСмпляра класса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ __init__(self). ΠŸΡ€ΠΈ этом, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ __new__ – это классовый ΠΌΠ΅Ρ‚ΠΎΠ΄, Π° __init__ Ρ‚Π°ΠΊΠΈΠΌ Π½Π΅ являСтся. ΠœΠ΅Ρ‚ΠΎΠ΄ __new__ Ρ€Π΅Π΄ΠΊΠΎ пСрСопрСдСляСтся, Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ рСализация ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса object (см. Ρ€Π°Π·Π΄Π΅Π» НаслСдованиС), __init__ ΠΆΠ΅ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ являСтся ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ способом Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ класса Rectangle с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌ конструктором ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ задаСтся ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ высота ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°:

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

Π”ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹ ΡƒΠΆΠ΅ успСли ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом self. self – это ссылка Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ экзСмпляр класса, Π² Ρ‚Π°ΠΊΠΈΡ… языках ΠΊΠ°ΠΊ Java, C# Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово this. Π§Π΅Ρ€Π΅Π· self Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ класса Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ area ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ width ΠΈ height для расчСта ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ. Если Π±Ρ‹ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π½Π΅ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ self, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ area ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° Π±Ρ‹ остановлСна с ошибкой.

Π£Ρ€ΠΎΠ²Π½ΠΈ доступа Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с языками программирования Java, C#, C++ Ρ‚ΠΎ, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, ΡƒΠΆΠ΅ задались вопросом: β€œΠ° ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ доступа?”. Π’ пСрСчислСнных языка Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‡Ρ‚ΠΎ доступ ΠΊ Π½Π΅ΠΉ снаруТи класса Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½, это дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов (private, protected ΠΈ Ρ‚.Π΄.). Π’ Python Ρ‚Π°ΠΊΠΈΡ… возмоТностСй Π½Π΅Ρ‚, ΠΈ любой ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ вашСго класса, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ такая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ сущСствСнный нСдостаток этого языка, Ρ‚.ΠΊ. Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ООП – инкапсуляция. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ считаСтся, Ρ‡Ρ‚ΠΎ для чтСния/измСнСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ getter/setter, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. ΠŸΡ€ΠΈ этом Π΅ΡΡ‚ΡŒ соглашСниС, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ начинаСтся с Π½ΠΈΠΆΠ½Π΅Π³ΠΎ подчСркивания, являСтся скрытым, ΠΈ снаруТи класса Ρ‚Ρ€ΠΎΠ³Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ (хотя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ).

ВнСсСм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π² класс Rectangle:

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для доступа ΠΊ _width ΠΈ _height ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π²Π°ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π½ΠΈΠΌ (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ) Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

Если ΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ начинаСтся с Π΄Π²ΡƒΡ… ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠΉ, Ρ‚ΠΎ Ρ‚ΡƒΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹ ΠΊ Π½Π΅ΠΌΡƒ ΡƒΠΆΠ΅ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ (простым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ). ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ наш класс Rectangle:

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ __width Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· get_width():

Но Π½Π° самом Π΄Π΅Π»Π΅ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ, просто этот Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ для внСшнСго использования носит Π½Π°Π·Π²Π°Π½ΠΈΠ΅: _Rectangle__width:

Бвойства

Бвойством называСтся Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ класса, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ. Для объявлСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° свойством Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ @property.

Π’Π°ΠΆΠ½Ρ‹ΠΌ прСимущСством Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· свойства являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ.

Π‘Π΄Π΅Π»Π°Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ класса Rectangle с использованиСм свойств:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с width ΠΈ height ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ:

МоТно Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π½ΠΎ ΠΈ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ значСния свойствам:

Если Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π² setter’ах этих свойств осущСствляСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСньшС нуля, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ValueError:

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

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

БинтаксичСски созданиС класса с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ родитСля выглядит Ρ‚Π°ΠΊ:

class имя_класса(имя_родитСля1, [имя_родитСля2,…, имя_родитСля_n])

ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½Π΅ΠΌ присутствовало наслСдованиС:

Π ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ классом являСтся Figure, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ ΠΈ прСдоставляСт Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· свойства. Rectangle – класс наслСдник ΠΎΡ‚ Figure. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ __init__: Π² Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ вызываСтся конструктор (хотя это Π½Π΅ совсСм Π²Π΅Ρ€Π½ΠΎ, Π½ΠΎ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ) Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса:

super – это ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обращСния ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ классу.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Rectangle ΠΏΠΎΠΌΠΈΠΌΠΎ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹Ρ… свойств width ΠΈ height появилось свойство color:

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

Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано Π²ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ООП ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ пСрСопрСдСлСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π² классС наслСдникС. ΠŸΡ€ΠΎΡ‰Π΅ всСго это Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π² наш Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс ΠΌΠ΅Ρ‚ΠΎΠ΄ info(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΡΠ²ΠΎΠ΄Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ класса Figure ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² классС Rectangle, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, класс наслСдник ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» класса родитСля.

P.S.

Если Π²Π°ΠΌ интСрСсна Ρ‚Π΅ΠΌΠ° Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Pandas. На нашСм сайтС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π²Π²ΠΎΠ΄Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅. ВсС ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Pandas собраны Π² ΠΊΠ½ΠΈΠ³Π΅ β€œPandas. Π Π°Π±ΠΎΡ‚Π° с данными”.
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅. python book 3d cover v5. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ Ρ„ΠΎΡ‚ΠΎ. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅-python book 3d cover v5. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° python book 3d cover v5. ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π½Π° Python ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ нСсколько слоТностСй, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ разграничСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса ΠΈ экзСмпляра. Π’ этом руководствС я объясню Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ класса ΠΈ экзСмпляра ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования.

Python. Π£Ρ€ΠΎΠΊ 14. ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ : 18 ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²

А Π²ΠΎΡ‚ Ссли Π’Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π²ΠΎΡ‚ это
.entry-title a:last-child <
float:right;
>
Π² свой css Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, Π½Π΅ΠΆΠ΅Π»ΠΈ Π²Ρ‹ Π±ΡƒΠ΄ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 2-Π½ΡƒΡŽ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ Π² HTML. Бпасибо.

Класс, ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ super() Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈ слова

Бпасибо Π·Π° Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅! Π”ΠΎΠ±Π°Π²ΠΈΠΌ!

ΠŸΡ€ΠΎ self Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ сказано. ΠŸΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ссылку Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŒΠ΅ΠΊΡ‚.

Π”Π°, это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ссылка Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. НуТно Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ этот ΡƒΡ€ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π² Π½Π΅ΠΌ ΠΏΠ»ΠΎΡ…ΠΎ раскрыты ΠΌΠ½ΠΎΠ³ΠΈΠ΅ вопросы! Бпасибо Π·Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ!

О ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ __new__(cls) Ρ‚ΠΎΠΆΠ΅ Π½Π΅Ρ‚ Π½ΠΈ слова, Π° ΠΎΠ½ Ρ‚Π°ΠΊ ΠΆΠ΅ участвуСт Π² конструировании экзСмпляра класса.

ОК, спасибо! Π”ΠΎΠ±Π°Π²ΠΈΠΌ!

НаконСц-Ρ‚ΠΎ всё стало понятно. ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ спасибо Π·Π° Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ 1 класса 2 Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΈ!

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ инкапсуляции Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ скорСС присущС самому ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ β€œΠΊΠ»Π°ΡΡβ€. А инкапсуляция – это сокрытиС Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

> Атрибут ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ статичСским ΠΈ Π½Π΅ статичСским (уровня ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса)

Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках принято β€œΠ½Π΅ статичСскиС атрибуты” Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ динамичСскими. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ язык Π½Π΅ Π»ΠΎΠΌΠ°Ρ‚ΡŒ 🙂

ΠŸΡ‹Ρ‚Π°ΡŽΡΡŒ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.
@property
def width(self):
return self.__width
@width.setter
def width(self, w):
if w > 0:
self.__width = w
else:
raise ValueError

Понял Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² уровня Класс. Но Π½Π΅ понятно Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ классовых ΠΈ статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (@classmethod, @staticmethod)

Бтолкнулся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ
Π΅ΡΡ‚ΡŒ класс
class Users(): #класс списка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
def __init__(self):
self.item=[]
self.num=0

Π΅ΡΡ‚ΡŒ класс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
class Aduser(): #класс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠΌΠ΅Π½Π°
def __init__(self):
self.fio=”” # ЀИО
self.login=”” # login
self.email=”” # e-mail
self.list=[] # ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊ спискам
self.spec=”” # Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ
self.dept=”” # ΠΎΡ‚Π΄Π΅Π»
self.stage=True # состояниС активности ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи
self.desc=”” # ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
usrs = Users()
usr = Aduser()
…
Π½Π΅ ΠΌΠΎΠ½Ρƒ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ срабатываСт конструкция
usrs.item.append[usr]
Ρ‚ΠΎΡ‡Π½Π΅Π΅ срабатываСт Π½ΠΎ Π² usrs.item[] ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ пустой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Adusers()

Бсылки Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΡƒΡ€ΠΎΠΊΠΈ Π½Π΅ нашСл, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚ΡƒΡ‚ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅, Ρ‡Ρ‚ΠΎ это (хотя Π±Ρ‹ ссылкой) Ρ‚ΠΎΠΆΠ΅ Π½Π΅ нашСл.

Π Π°Π±ΠΎΡ‚Π°ΡŽ с ΠΏΠΈΡ‚ΠΎΠ½ΠΎΠΌ ΡƒΠΆΠ΅ большС Π³ΠΎΠ΄Π°. Π”ΠΎΠ»Π³ΠΎ пытался ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ @property ΠΈ @setter, А Ρ‚ΡƒΡ‚ Π°Π²Ρ‚ΠΎΡ€ Π·Π° 10 строчСк объяснил, Π±Ρ€Π°Π²ΠΎ!

Класно описано. Волько Π²ΠΎΡ‚ ΠΏΡ€ΠΎ сСттСры Π½ΠΈ слова объяснСния, ΠΈΠ· ΠΊΠΎΠ΄Π° приходится догадыватся.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠ»Π°ΡΡΡ‹ Π² Python

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅. SRE 2021. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ Ρ„ΠΎΡ‚ΠΎ. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅-SRE 2021. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° SRE 2021. ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π½Π° Python ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ нСсколько слоТностСй, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ разграничСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса ΠΈ экзСмпляра. Π’ этом руководствС я объясню Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ класса ΠΈ экзСмпляра ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅. python classes. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ Ρ„ΠΎΡ‚ΠΎ. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅-python classes. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° python classes. ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π½Π° Python ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ нСсколько слоТностСй, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ разграничСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса ΠΈ экзСмпляра. Π’ этом руководствС я объясню Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ класса ΠΈ экзСмпляра ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования.

Всё Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ расплывчатоС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ссли Π΄ΠΎ этого Π²Ρ‹ Π½Π΅ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Ρ‡Ρ‚ΠΎ всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° классС. Класс – это ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚:

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ строку, ΠΏΡ€ΠΈΡΠ²ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ…. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ большой объСм, Π½ΠΎ Π΄Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ этой строки ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово dir, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ список всСх ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ строкС. ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ 71 ΠΌΠ΅Ρ‚ΠΎΠ΄! ВСхничСски, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ это суТаСт список Π΄ΠΎ 38 ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π½ΠΎ это всС Π΅Ρ‰Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ! Π§Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚? Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ, строка основана Π½Π° классС, Π° пСрСмСнная Ρ… – ΠΈ Π΅ΡΡ‚ΡŒ экзСмпляр этого класса. Π’ ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС классы. НачнСм!

БозданиС Класса

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ класса Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅ – это ΠΎΡ‡Π΅Π½ΡŒ просто. Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π­Ρ‚ΠΎΡ‚ класс Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, это ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ инструмСнт для изучСния. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово class, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ класса. Π’ ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅, конвСнция ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ класса Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹. Π”Π°Π»Π΅Π΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ слСдуСт слово object ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ скобки. Β«objectΒ» β€” Ρ‚ΠΎ, Π½Π° Ρ‡Π΅ΠΌ основан класс, ΠΈΠ»ΠΈ наслСдуСтся ΠΎΡ‚ Π½Π΅Π³ΠΎ. Π­Ρ‚ΠΎ называСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ классом. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ классов Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅ основаны Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. Π£ классов Π΅ΡΡ‚ΡŒ особый ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ __init__.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создаСтС (ΠΈΠ»ΠΈ создаСтС экзСмпляр) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° основС этого класса. ΠœΠ΅Ρ‚ΠΎΠ΄ __init__ вызываСтся Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ‹, ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ снова Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π”Ρ€ΡƒΠ³ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° __init__ β€” это конструктор, кстати, этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Ρ€Π΅Π΄ΠΊΠΎ встрСчаСтся Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ я Π½Π°Π·Ρ‹Π²Π°ΡŽ это ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Π° Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ? Ѐункция мСняСт своС имя Π½Π° Β«methodΒ», ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° находится Π²Π½ΡƒΡ‚Ρ€ΠΈ класса. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Ρ‡Ρ‚ΠΎ Π² случаС с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΡƒΠΆΠ΅ Π½Π΅ вяТСтся. Π’ Python 3 Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ прямо ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ наслСдуСм Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ВмСсто этого, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ СдинствСнная Ρ€Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки Π½Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ основываСм наш класс Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠΌ нашС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ класса ΠΈ Π΄Π°Π΄ΠΈΠΌ Π΅ΠΌΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΈ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π­Ρ‚ΠΈ Ρ‚Ρ€ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

Атрибуты ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Ρ†Π²Π΅Ρ‚, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство Π΄Π²Π΅Ρ€Π΅ΠΉ ΠΈ колСс. Π’Π°ΠΊΠΆΠ΅ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ описываСт, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ класс. Π’ нашСм случаС, Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ. Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, ΠΈΠΌΠ΅ΡŽΡ‚ интСрСсный Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ self. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π΅Π³ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Π΅Π΅.

Π•ΡΡ‚ΡŒ вопросы ΠΏΠΎ Python?

На нашСм Ρ„ΠΎΡ€ΡƒΠΌΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ любой вопрос ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ всСго нашСго сообщСства!

Telegram Π§Π°Ρ‚ & Канал

ВступитС Π² наш Π΄Ρ€ΡƒΠΆΠ½Ρ‹ΠΉ Ρ‡Π°Ρ‚ ΠΏΠΎ Python ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ! Π‘Ρ‚Π°Π½ΡŒΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ большого сообщСства!

Паблик VK

Одно ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сообщСств ΠΏΠΎ Python Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ сСти Π’Πš. Π’ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊΠΈ ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ для вас!

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

Классам Π½ΡƒΠΆΠ΅Π½ способ, Ρ‡Ρ‚ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° самих сСбя. Π­Ρ‚ΠΎ Π½Π΅ ΠΈΠ· разряда нарциссичного ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ со стороны класса. Π­Ρ‚ΠΎ способ сообщСния ΠΌΠ΅ΠΆΠ΄Ρƒ экзСмплярами. Π‘Π»ΠΎΠ²ΠΎ self это способ описания любого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ. Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ½Π΅ каТСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, ΠΊΠΎΠ³Π΄Π° я ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡΡŒ с Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ ΠΈ странным:
Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ этот ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½Π΅Ρ† класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ написали Ρ€Π°Π½Π΅Π΅ ΠΈ сохранитС:

Условия ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это стандартный способ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠŸΠ°ΠΉΡ‚ΠΎΠ½Ρƒ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Ссли ΠΎΠ½ выполняСтся ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Если Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ свой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ скрипт, Ρ‚ΠΎ ΠΊΠΎΠ΄, располоТСнный Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ if Π½Π΅ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π’ любом случаС, Ссли Π²Ρ‹ запуститС этот ΠΊΠΎΠ΄, Π²Ρ‹ создадитС Π΄Π²Π° экзСмпляра класса автомобиля (Vehicle): класс Π»Π΅Π³ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΈ класс Π³Ρ€ΡƒΠ·ΠΎΠ²ΠΎΠ³ΠΎ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свои собствСнныС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ИмСнно ΠΏΠΎ этому, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈ Ρ†Π²Π΅Ρ‚Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра, ΠΎΠ½ΠΈ ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ этот класс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ self, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ самому сСбС, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ класс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ:

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ классу, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ транспортного срСдства ΠΌΡ‹ создаСм. ПослС этого ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экзСмпляра. Если Π²Ρ‹ запуститС Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

ΠŸΠΎΠ΄ΠΊΠ»Π°ΡΡΡ‹

Настоящая сила классов становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ, ΠΊΠΎΠ³Π΄Π° вопрос касаСтся подклассов. Π’Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅Ρ‰Π΅ Π½Π΅ поняли это, Π½ΠΎ ΠΌΡ‹ ΡƒΠΆΠ΅ создали подкласс, ΠΊΠΎΠ³Π΄Π° создавали класс, основанный Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, «подклассифицировали» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ – это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ интСрСсная Ρ‚Π΅ΠΌΠ°, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π΅ ΡƒΠ΄Π΅Π»ΠΈΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ³ΠΎ внимания Ρ‚Π°ΠΊΠΎΠΌΡƒ ΡΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ инструмСнту ΠΊΠ°ΠΊ подкласс. Π”Π°Π²Π°ΠΉΡ‚Π΅ подклассифицируСм наш класс Vehicle ΠΈ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ всС это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ подклассифицировали класс Vehicle. Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ __init__ ΠΈ drive. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ· класса подкласс, ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΠΌ всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΌΡ‹ Π½Π΅ пСрСопрСдСляСм ΠΈΡ…. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ пСрСопрСдСляСм ΠΌΠ΅Ρ‚ΠΎΠ΄ brake ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π΅ΠΌΡƒ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅, ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ½ΠΈ ΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎ этого. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŽ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΈ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΎΠ΄ΠΈΠΌ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ. Когда ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ значСния Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ класса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ – ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ это наслСдованиС.

Π­Ρ‚ΠΎ достаточно большой Ρ€Π°Π·Π΄Π΅Π» Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°. ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ классы ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ интСрфСйс (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹), Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. КасаСмо ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅, Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ слоТно Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ интСрфСйсы ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΌΡ‹ знакомимся с понятиСм утиная типизация. Π‘ΡƒΡ‚ΡŒ ΡƒΡ‚ΠΈΠ½ΠΎΠΉ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли это Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊ ΡƒΡ‚ΠΊΠ°, ΠΈ крякаСт ΠΊΠ°ΠΊ ΡƒΡ‚ΠΊΠ° – Π·Π½Π°Ρ‡ΠΈΡ‚, это Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡƒΡ‚ΠΊΠ°.

ΠšΡ€Π°ΠΉΠ½Π΅ Π²Ρ‹Π³ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ Π΄Ρ€ΡƒΠ·Π΅ΠΉ Π’ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ Π’Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° сСрвисС Π”ΠΎΠΊΡ‚ΠΎΡ€Π‘ΠΌΠΌ. Π—Π΄Π΅ΡΡŒ Π’Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€, ΠΊΠ°ΠΊ качСства добавляСмых страниц, Ρ‚Π°ΠΊ ΠΈ скорости ΠΈΡ… поступлСния Π½Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Π½Π° сайтС сдСлано всС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π’Ρ‹ с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π»ΠΈ для сСбя Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎΠ΅ ΠΈ бСзопасноС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

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

ПодвСдСм ΠΈΡ‚ΠΎΠ³ΠΈ

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅. site admin. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ Ρ„ΠΎΡ‚ΠΎ. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅-site admin. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр класса Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° site admin. ΠŸΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π½Π° Python ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ нСсколько слоТностСй, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ разграничСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… класса ΠΈ экзСмпляра. Π’ этом руководствС я объясню Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ класса ΠΈ экзСмпляра ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования.

Являюсь администратором Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠ² ΠΏΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ языков программирования Python, Golang ΠΈ Kotlin. Π’ составС нСбольшой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΌΡ‹ занимаСмся популяризациСй языков программирования Π½Π° Ρ€ΡƒΡΡΠΊΠΎΡΠ·Ρ‹Ρ‡Π½ΡƒΡŽ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ статСй Π±Ρ‹Π»Π° Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π°ΠΌΠΈ Π½Π° русский язык ΠΈ распространяСтся бСсплатно.

E-mail: vasile.buldumac@ati.utm.md

ΠžΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
Universitatea Tehnică a Moldovei (utm.md)

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

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