🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° 🐍
3K subscribers
614 photos
2 videos
275 links
🐍 Канал ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° языкС Python. ВСматичСскиС ΡƒΡ€ΠΎΠΊΠΈ ΠΈ Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ.

πŸ‘½ Админ - @it_dashka
πŸ”Š ΠšΡƒΠΏΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ: https://telega.in/c/byteofpython

πŸ‘‰ Π§Π°Ρ‚: @abyteofpython
πŸ‘‰ ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ: @byteofpython
Download Telegram
πŸ–₯ Π§Ρ‚ΠΎ прСдставляСт собой some-variable ?

πŸ‘‰ Π’ Python Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ послС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ называСтся "dunder" (Double underscore) ΠΈ примСняСтся для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ автоматичСски.

⬆️ НапримСр, init - это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся ΠΏΡ€ΠΈ создании экзСмпляра класса. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ str, len, call, iter ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

πŸ‘‰ Π’Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ "dunder" Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ name, module, doc, file, dict, class, all ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅, классС, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅.

βœ… Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ присваиваСтся Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, зависит ΠΎΡ‚ контСкста использования.

⬆️ НапримСр, name - это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ модуля.

❗️РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² языкС Python, ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ использования Ρ‚Π°ΠΊΠΈΡ… ΠΈΠΌΠ΅Π½ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈ нСпрСдсказуСмого повСдСния.
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° aiohttp основана Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ asyncio, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π²ΠΎΠ΄ΠΈΡ‚ понятиС ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½ ΠΈ сопрограмм Π² Python.

πŸ‘‰ Она прСдоставляСт простой ΠΈ эффСктивный способ создания асинхронных HTTP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ сСрвСров. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ aiohttp Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ асинхронныС HTTP-запросы, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ сСб-сокСтами.

πŸ”Ό Одним ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… прСимущСств Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ aiohttp являСтся Π΅Π΅ высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Благодаря асинхронной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, aiohttp ΠΏΠΎΠ·Π²Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ большоС количСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… запросов Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² выполнСния.

ИспользованиС aiohttpsocks:

πŸ‘‰ Aiohttp-socks - это Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ aio, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ для асинхронной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠΌ HTTP Π² Python. Она позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ асинхонныС HTTP-запросы Ρ‡Π΅Ρ€Π΅Π· SOCKS-прокси, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ парсингС Π²Π΅Π±-страниц ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с API Π²Π΅Π±-сСрвисов.
🐍 Pygame - ΠΎΠ΄Π½Π° ΠΈΠ· самых популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€ Π½Π° языкС программирования Python.

πŸ‘‰ Она ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ спСктр инструмСнтов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ 2D ΠΈΠ³Ρ€Ρ‹. Pygame ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ простым ΠΈ понятным интСрфСйсом, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ³Ρ€. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π·Π²ΡƒΠΊΠΎΠΌ, Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Π²ΠΎΠ΄Π°.

πŸ”Ό Arcade - Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для создания ΠΈΠ³Ρ€ Π½Π° Python, с ΡƒΠΊΠ»ΠΎΠ½ΠΎΠΌ Π½Π° 2D ΠΈΠ³Ρ€Ρ‹. Π£ Π½Π΅Π΅ простой ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ, Ρ„ΠΈΠ·ΠΈΠΊΡƒ ΠΈ Π·Π²ΡƒΠΊ.

πŸ”Ό Panda3D - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая прСдоставляСт возмоТности для создания ΠΊΠ°ΠΊ 2D, Ρ‚Π°ΠΊ ΠΈ 3D ΠΈΠ³Ρ€ Π½Π° Python. Она ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструмСнтов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ высококачСствСнныС ΠΈΠ³Ρ€Ρ‹.
ΠŸΡ€ΠΈΠ²Π΅Ρ‚!

ΠœΡ‹ β€” Московская Π¨ΠΊΠΎΠ»Π° ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ΠΎΠ², ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΠΈ Python ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования. Π£ нас Π³ΠΈΠ±ΠΊΠΈΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ, полная мСтодичСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ мноТСство пСрспСктив для развития.

Наш ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ основываСтся Π½Π° долгосрочном ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ: наши ΡƒΡ‡Π΅Π½ΠΈΠΊΠΈ учатся ΠΎΡ‚ 4 Π»Π΅Ρ‚ ΠΈ большС.

Π£ нас Π΅ΡΡ‚ΡŒ отдСлСния Π² МосквС, Московской области ΠΈ Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³Π΅. ΠœΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ ΠΏΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΈ Π²Π΅Ρ‡Π΅Ρ€Π°ΠΌ Π±ΡƒΠ΄Π½ΠΈΡ… Π΄Π½Π΅ΠΉ.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Ρ„ΠΎΡ€ΠΌΡƒ для записи ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° нашСм сайтС.
Π§Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΊΠΎΠ΄?
Anonymous Quiz
75%
True
13%
False
5%
0
8%
ΠžΡˆΠΈΠ±ΠΊΡƒ
Π§Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ этот ΠΊΠΎΠ΄?
Anonymous Quiz
50%
True
33%
False
14%
ΠžΡˆΠΈΠ±ΠΊΡƒ
3%
Π£Π·Π½Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚
Π§Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΊΠΎΠ΄?
Anonymous Quiz
12%
Wow
63%
Heh
12%
None
12%
ΠžΡˆΠΈΠ±ΠΊΡƒ
🐍 PyVista: простота 3D-Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с Python

PyVista – это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с 3D-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ простой ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎΠΉ.

πŸ‘‰ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ прСимущСства PyVista:

- ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ доступ ΠΊ VTK: PyVista прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс для взаимодСйствия с VTK – ΠΌΠΎΡ‰Π½Ρ‹ΠΌ инструмСнтом Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π΅ трСбуя Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… Π·Π½Π°Π½ΠΈΠΉ Π΅Π³ΠΎ слоТного API.

- ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…: Π Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ с 3D-Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сСтки, Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ области.

- Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для Π°Π½Π°Π»ΠΈΠ·Π°: PyVista позволяСт Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ 3D-Π΄Π°Π½Π½Ρ‹Π΅ для получСния Ρ†Π΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

πŸ‘‰Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с PyVista:

- Π’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слоТныС 3D-ΠΌΠΎΠ΄Π΅Π»ΠΈ: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ рСалистичныС изобраТСния для ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΉ
ΠΈΠ»ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ.

- ΠΠ½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 3D-Π΄Π°Π½Π½Ρ‹Π΅: Π˜ΡΡΠ»Π΅Π΄ΡƒΠΉΡ‚Π΅ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… областСй.

- Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ 3D-Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ PyVista ΠΊΠ°ΠΊ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ с 3Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ.
🐍 Как Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π° инкапсуляция Π² python ?
Бпросят с Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ 3%

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ Π² Python выраТаСтся Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ класса ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ интСрфСйс. Π’Π°ΠΆΠ½Ρ‹Π΅ аспСкты инкапсуляции Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

БоглашСния об имСновании

βšͺ ΠŸΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

- Π’ Python соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… случайноС использованиС Π²Π½Π΅ класса.

- Атрибуты ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ подчёркивания (_), ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π½Π΅ класса ΠΈΠ»ΠΈ подклассов.

- Атрибуты ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ подчёркивания (__), ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ ΠΌΠ°Π½Π³Π»ΠΈΠ½Π³Ρƒ ΠΈΠΌΡ‘Π½ (name mangling), Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… труднодоступными ΠΈΠ·Π²Π½Π΅ класса.
class MyClass:
def init(self, value):
self._protected_value = value # Π—Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚
self.__private_value = value # ΠŸΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚

def _protected_method(self):
print("This is a protected method.")

def __private_method(self):
print("This is a private method.")


ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

βšͺΠ—Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

- Они Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для использования Π²Π½Π΅ класса, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² подклассах.

- Π˜Ρ… использованиС Π²Π½Π΅ класса являСтся ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ, Π½ΠΎ тСхничСски Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
class SubClass(MyClass):
def access_protected(self):
print(self._protected_value)
self._protected_method()

instance = SubClass(10)
instance.access_protected()
# Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚:
# 10
# This is a protected method.


βšͺ ΠŸΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

- Они ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ ΠΌΠ°Π½Π³Π»ΠΈΠ½Π³Ρƒ ΠΈΠΌΡ‘Π½, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… труднодоступными ΠΈΠ·Π²Π½Π΅ класса.

- Π’Π½Π΅ΡˆΠ½ΠΈΠΉ доступ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½, Π½ΠΎ с использованиСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ синтаксиса, Ρ‡Ρ‚ΠΎ считаСтся ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ.
class AnotherClass:
def init(self, value):
self.__private_value = value

def __private_method(self):
print("This is a private method.")

def access_private(self):
print(self.__private_value)
self.__private_method()

instance = AnotherClass(20)
instance.access_private()
# Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚:
# 20
# This is a private method.

# ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° доступа ΠΊ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΌΡƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ ΠΈΠ·Π²Π½Π΅
# print(instance.__private_value) # AttributeError

# Доступ с использованиСм ΠΌΠ°Π½Π³Π»ΠΈΠ½Π³Π° ΠΈΠΌΡ‘Π½ (Π½Π΅ рСкомСндуСтся)
print(instance._AnotherClass__private_value) # Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚: 20


Бвойства (Properties)


ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ интСрфСйс для управлСния доступом ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ доступа ΠΈ измСнСния Π΄Π°Π½Π½Ρ‹Ρ….
class MyClassWithProperty:
def init(self, value):
self._value = value

@property
def value(self):
return self._value

@value.setter
def value(self, new_value):
if new_value > 0:
self._value = new_value
else:
raise ValueError("Value must be positive")

instance = MyClassWithProperty(10)
print(instance.value) # Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚: 10
instance.value = 20
print(instance.value) # Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚: 20
# instance.value = -10 # ValueError: Value must be positive


Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ достигаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ соглашСний ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ (ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ для Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Ρ… ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Ρ‘Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ для ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²) ΠΈ использования свойств для управлСния доступом ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ. Π­Ρ‚ΠΎ позволяСт ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ интСрфСйс для взаимодСйствия с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.