🐍🧹 3 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° написания чистого ΠΊΠΎΠ΄Π° Π½Π° Python

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ программисты с Ρ‚Ρ€ΡƒΠ΄ΠΎΠΌ ΠΏΠΈΡˆΡƒΡ‚ чистый ΠΊΠΎΠ΄, ΠΈ это часто ощущаСтся ΠΊΠ°ΠΊ постоянная Π±ΠΈΡ‚Π²Π° Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π±Ρ‹Π»ΠΎ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ ΠΈ упорядочСно. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΈ осмыслСнный ΠΊΠΎΠ΄ ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

Данная ΡΡ‚Π°Ρ‚ΡŒΡ являСтся ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ. Автор: Youssef Hosni. Бсылка Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π».

НаписаниС чистого ΠΊΠΎΠ΄Π° β€” Π²Π°ΠΆΠ½Ρ‹ΠΉ Π½Π°Π²Ρ‹ΠΊ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ программиста, ΠΈ это Π½Π΅ Ρ‚Π°ΠΊ просто, ΠΊΠ°ΠΊ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅. Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ программисты с Ρ‚Ρ€ΡƒΠ΄ΠΎΠΌ ΠΏΠΈΡˆΡƒΡ‚ чистый ΠΊΠΎΠ΄, ΠΈ это Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ощущаСтся ΠΊΠ°ΠΊ постоянная Π±ΠΈΡ‚Π²Π° Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π±Ρ‹Π»ΠΎ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ ΠΈ упорядочСно. Но ΠΊΠ°ΠΊ этого ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ?

Чистый ΠΊΠΎΠ΄ β€” это Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС, Ρ‡Π΅ΠΌ просто ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ всСх Π²Π°ΡˆΠΈΡ… Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… строк ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ Π²Π°ΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ программист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с вашим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π», Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠΌΠ΅Π»ΠΈ Π² Π²ΠΈΠ΄Ρƒ Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π°, Π±Π΅Π· нСобходимости ΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ Π² коммСнтариях ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

БущСствуСт мноТСство ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ для написания чистого ΠΊΠΎΠ΄Π° Π½Π° Python. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ нСсколько совСтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс написания.

1. Π₯арактСристики высококачСствСнного ΠΊΠΎΠ΄Π°

Π’ любом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΊΠΎΠ΄ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ². ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ чистым ΠΈ простым для понимания, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС частСй ΠΊΠΎΠ΄Π°, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для создания высококачСствСнного ΠΊΠΎΠ΄Π°. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ я ΠΎΠΏΠΈΡˆΡƒ нСсколько ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‡Π΅Ρ€Ρ‚ высококачСствСнного ΠΊΠΎΠ΄Π°.

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, эти Ρ‡Π΅Ρ€Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ‚ΠΎ, насколько эффСктивно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ смогут Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с исходным ΠΊΠΎΠ΄ΠΎΠΌ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ!

1. Код: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… сСрвСрах для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ отличия ΠΎΡ‚ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ оТиданиям ΠΏΠΎ надСТности, эффСктивности ΠΈ Ρ‚. Π΄. для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ вСсь ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ этим оТиданиям, Π½ΠΎ это Π½Π΅ всСгда Ρ‚Π°ΠΊ.

2. Π―ΡΠ½ΠΎΡΡ‚ΡŒ: Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎ, просто ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ. Π₯арактСристика качСствСнного ΠΊΠΎΠ΄Π°, которая ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для совмСстной Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ удобства сопровоТдСния ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Чистый ΠΊΠΎΠ΄ являСтся ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ характСристикой высококачСствСнного ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°. НаписаниС чистого ΠΊΠΎΠ΄Π° Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ:

  • Π£Π·ΠΊΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄: КаТдая функция, класс ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‰ΡŒ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ.
  • Π›Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄: По словам Грэди Π‘ΡƒΡ‡Π°, Π°Π²Ρ‚ΠΎΡ€Π° ΠΊΠ½ΠΈΠ³ΠΈ Β«ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉΒ», чистый ΠΊΠΎΠ΄ читаСтся ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΎ написанная ΠΏΡ€ΠΎΠ·Π°.
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π°: Чистый ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ошибки, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΈ выполняСм.
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° сопровоТдСния: Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ.

3. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄: логичСски Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π°ΠΆΠ½ΠΎΠΉ характСристикой качСствСнного ΠΊΠΎΠ΄Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚ ваш ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, эффСктивным ΠΈ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, инкапсулируя Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹.

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

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ сначала Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, Π° Π·Π°Ρ‚Π΅ΠΌ провСсти Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ чистый ΠΊΠΎΠ΄. Π’Ρ‹ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ программистом, Ссли постоянно ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅ΡΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄. Π§Π΅ΠΌ большС Π²Ρ‹ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚Π΅, Ρ‚Π΅ΠΌ Π»Π΅Π³Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π°Π·Π°.

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста»

2. ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΈΠΌΡ‘Π½

ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΈ Π²Π°ΠΆΠ½Ρ‹Ρ… аспСктов написания чистого ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов ΠΈ Ρ‚. Π΄. Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ осмыслСнныС ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ понятными. А это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π»ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ двусмыслСнным ΠΈΠΌΠ΅Π½Π°ΠΌ.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Π΅ΠΌ с соглашСний ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… PEP 8:

  • ΠΈΠΌΠ΅Π½Π° классов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ CamelCase (ΡΡ‚ΠΈΠ»ΡŒ написания, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ нСсколько слов ΠΏΠΈΡˆΡƒΡ‚ΡΡ слитно Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ слово ΠΏΡ€ΠΈ этом ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ с прописной Π±ΡƒΠΊΠ²Ρ‹) (MyClass);
  • ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ snake_case (ΡΡ‚ΠΈΠ»ΡŒ написания, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС слова ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½ΠΈΠΆΠ½ΠΈΠΌ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ) (first_name);
  • ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ snake_case ΠΈ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС (quick_sort());
  • константы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ snake_case ΠΈ всС Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС (PI = 3.14159);
  • ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π² snake_case ΠΈ всС строчныС Π±ΡƒΠΊΠ²Ρ‹ (numpy);
  • ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ (просто Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈ Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹).

Π’ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π°:

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

1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ. ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Π½Π° Π±Ρ‹Π»ΠΈ простыми ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ поняты сами ΠΏΠΎ сСбС. Π­Ρ‚ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ ΠΎΡ‚ нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

# Not recommended
# The au variable is the number of active users
au = 105

# Recommended 
total_active_users = 105

2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ названия. Π’Π°ΡˆΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² состоянии Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Ρƒ вас Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, ваш ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ осмыслСнным.

# Not recommended
c = [β€œUK”, β€œUSA”, β€œUAE”]

for x in c:
print(x)

# Recommended
cities_list = [β€œUK”, β€œUSA”, β€œUAE”]
    for city in cities_list:
        print(city)

3. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ. Π‘ΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…. БоблюдСниС принятого соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… Π²Π°ΠΆΠ½ΠΎ для устранСния ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, ΠΊΠΎΠ³Π΄Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π°Π΄ вашим ΠΊΠΎΠ΄ΠΎΠΌ. И это относится ΠΊ имСнованию ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π΄Π°ΠΆΠ΅ структур ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

# Not recommended
client_first_name = β€˜John’
customer_last_name = β€˜Doe;

# Recommended
client_first_name = β€˜John’
client_last_name = β€˜Doe’

# Another example:

# bad code
def fetch_clients(response, variable):
    # do something
    pass

def fetch_posts(res, var):
    # do something
    pass

# Recommended
def fetch_clients(response, variable):
    # do something
    pass

def fetch_posts(response, variable):
    # do something
    pass

4. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ магичСскиС числа. ΠœΠ°Π³ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ числа β€” это числа со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ТСстко Π·Π°Π΄Π°Π½Π½ΠΎΠΉ сСмантикой, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ΄Π΅, Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ значСния ΠΈΠ»ΠΈ объяснСния. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ эти числа ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС ΠΊΠΎΠ΄Π°.

import random

# Not recommended
def roll_dice():
    return random.randint(0, 4)  # what is 4 supposed to represent?

# Recommended
DICE_SIDES = 4

def roll_dice():
    return random.randint(0, DICE_SIDES)

2.2. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

5. Π”Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° != ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. НапримСр, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ подробности ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΡƒΠ·ΠΊΠΎΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ использовании.

DICE_SIDES = 4

# Not recommended
def roll_dice_using_randint():
    return random.randint(0, DICE_SIDES)  
    
# Recommended
def roll_dice():
    return random.randint(0, DICE_SIDES)

6. Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ соглашСнию ΠΎ присвоСнии ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ соглашСния ΠΏΡ€ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ИспользованиС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… соглашСний ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ ΡΠ±ΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΊΠΎΠ»Π»Π΅Π³.

# Not recommended
def fetch_user(id): 
    # do something
    Pass

def get_post(id):
    # do something
    pass

# Recommended
def fetch_user(id): 
    # do something
    Pass


def fetch_post(id):
    # do something
    pass

7. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³ΠΈ, Π² Ρ‚ΠΎΠΌ числС логичСскиС. ЛогичСскиС Ρ„Π»Π°Π³ΠΈ β€” это ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” true ΠΈΠ»ΠΈ false. Π­Ρ‚ΠΈ Ρ„Π»Π°Π³ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ для опрСдСлСния Π΅Π΅ повСдСния.

text = "Python is a simple and elegant programming language."

# Not recommended
def transform_text(text, uppercase):
    if uppercase:
        return text.upper()
    else:
        return text.lower()

uppercase_text = transform_text(text, True)
lowercase_text = transform_text(text, False)


# Recommended
def transform_to_uppercase(text):
    return text.upper()

def transform_to_lowercase(text):
    return text.lower()

uppercase_text = transform_to_uppercase(text)
lowercase_text = transform_to_lowercase(text)

2.3. ΠšΠ»Π°ΡΡΡ‹

8. НС добавляйтС лишний контСкст. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΈΠ·-Π·Π° добавлСния Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с классами.

# Not recommended
class Person:
    def __init__(self, person_username, person_email, person_phone, person_address):
        self.person_username = person_username
        self.person_email = person_email
        self.person_phone = person_phone
        self.person_address = person_address

# Recommended
class Person:
    def __init__(self, username, email, phone, address):

        self.username = username
        self.email = email
        self.phone = phone
        self.address = address

3. ИспользованиС пустого пространства

3.1. ΠžΡ‚ΡΡ‚ΡƒΠΏ

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

# Correct:

# Aligned with opening delimiter.
foo = long_function_name(var_one, var_two,
                         var_three, var_four)

# Add 4 spaces (an extra level of indentation) to distinguish arguments from the rest.
def long_function_name(
        var_one, var_two, var_three,
        var_four):
    print(var_one)

# Hanging indents should add a level.
foo = long_function_name(
    var_one, var_two,
    var_three, var_four)
# Wrong:

# Arguments on first line forbidden when not using vertical alignment.
foo = long_function_name(var_one, var_two,
    var_three, var_four)

# Further indentation required as indentation is not distinguishable.
def long_function_name(
    var_one, var_two, var_three,
    var_four):
    print(var_one)

3.2. Максимальная длина линии

ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ свои строки ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 79 символами, Ρ‡Ρ‚ΠΎ являСтся Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠ΅ΠΉ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² руководствС ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ PEP 8. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°Ρ… Π΅ΡΡ‚ΡŒ настройка для отобраТСния Ρ‚ΠΎΠ½ΠΊΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ, Π³Π΄Π΅ находится ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² 79 символов.

3.3. ΠŸΡƒΡΡ‚Ρ‹Π΅ строки

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ пустых строк Π² ваш ΠΊΠΎΠ΄ сдСлаСт Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡ΠΈΡ‰Π΅ ΠΈ понятнСС. Π’ΠΎΡ‚ простоС руководство ΠΏΠΎ добавлСнию пустых строк Π² ваш ΠΊΠΎΠ΄:

  • ΠžΠΊΡ€ΡƒΠΆΠΈΡ‚Π΅ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня двумя пустыми строками.
  • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ΠΎΡ‚Π΄Π΅Π»Π΅Π½Ρ‹ пустой строкой.
  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ пустыС строки ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ (экономно) для раздСлСния Π³Ρ€ΡƒΠΏΠΏ связанных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΡƒΡΡ‚Ρ‹Π΅ строки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Π±ΠΎΡ€ΠΎΠΌ связанных однострочников (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°Π±ΠΎΡ€ Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ).
  • ΠžΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ пустыС строки Π² функциях для обозначСния логичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².

4. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ докумСнтация

Как Π±Ρ‹ ΠΌΡ‹ Π½ΠΈ ΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄, Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ всС Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ части, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… пояснСний. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ быстро Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ (ΠΈ самим сСбС Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ), ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ написали это ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ. Однако Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ слоТным для восприятия, Ρ‡Π΅ΠΌ ΠΎΠ½ Π±Ρ‹Π» Π±Ρ‹ Π±Π΅Π· Π½ΠΈΡ….

4.1. ВстроСнныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ВстроСнныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ β€” это тСкст, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° символами Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎ всСму ΠΊΠΎΠ΄Ρƒ. Они ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для объяснСния частСй вашСго ΠΊΠΎΠ΄Π° ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌ участникам ΠΏΠΎΠ½ΡΡ‚ΡŒ Π²Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

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

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для пояснСний, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Π±Ρ‹Π» написан Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ значСния. НапримСр, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Иногда ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ нСстандартный ΠΈΠ»ΠΈ каТущийся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠ·-Π·Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ нСясной внСшнСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π­Ρ‚ΠΈ Π²Π΅Ρ‰ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π°.

Π’ΠΎΡ‚ нСсколько совСтов, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

1. НС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ΄, ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ Π΅Π³ΠΎ

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

2. НС добавляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π² этом Π½Π΅Ρ‚ нСобходимости.

Если ваш ΠΊΠΎΠ΄ достаточно Ρ‡ΠΈΡ‚Π°Π΅ΠΌ, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ бСсполСзных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сдСлаСт ваш ΠΊΠΎΠ΄ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Π’ΠΎΡ‚ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

# This checks if the user with the given ID doesn't exist.
if not User.objects.filter(id=user_id).exists():
    return Response({
        'detail': 'The user with this ID does not exist.',
    })

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ сдСлали, Π° Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ происходит.

3. НС оставляйтС Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΊΠΎΠ΄

Π₯ΡƒΠ΄ΡˆΠ΅Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, β€” это ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Π’Π΅ΡΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ сообщСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π² ​​систСму контроля вСрсий, ΠΈΠ½Π°Ρ‡Π΅ ваши ΠΊΠΎΠ»Π»Π΅Π³ΠΈ побоятся ΠΈΡ… ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, Π° ваш Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ останСтся Ρ‚Π°ΠΌ навсСгда.

4.2. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ

Docstrings, ΠΈΠ»ΠΈ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, β€” это Ρ†Π΅Π½Π½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ любой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ модуля Π² вашСм ΠΊΠΎΠ΄Π΅. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ каТдая ΠΈΠ· Π²Π°ΡˆΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ всСгда Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ docstrings, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ‚Ρ€ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

ΠŸΠ΅Ρ€Π²Π°Ρ строка docstrings прСдставляСт собой ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ объяснСниС назначСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ β€” это объяснСниС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ пСрСчисляСтС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚ΠΈΠΏΡ‹. НаконСц, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ приводится Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ описаниС Π²Ρ‹Π²ΠΎΠ΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. КаТдая Ρ‡Π°ΡΡ‚ΡŒ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ; ΠΎΠ΄Π½Π°ΠΊΠΎ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ кодирования. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ однострочная строка Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” многострочныС строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ:

def population_density(population, land_area):
    """Calculate the population density of an area."""
    return population / land_area
def population_density(population, land_area):
    """Calculate the population density of an area.

    Args:
    population: int. The population of the area
    land_area: int or float. This function is unit-agnostic, if you pass in values in terms of square km or square miles the function will return a density in those units.

    Returns:
    population_density: population/land_area. The population density of a 
    particular area.
    """
    return population / land_area

4.3. ДокумСнтация

ДокумСнтация ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈ ΠΊΠ°ΠΊ ваш ΠΊΠΎΠ΄ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ для Π½ΠΈΡ…, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ внСсти свой Π²ΠΊΠ»Π°Π΄ Π² ваш ΠΊΠΎΠ΄.

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ являСтся Ρ„Π°ΠΉΠ» README. ΠžΡ‡Π΅Π½ΡŒ часто это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ взаимодСйствиСм Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с вашим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π‘ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ Ρ„Π°ΠΉΠ» README. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ объяснСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΈ пСрСчислСния зависимостСй, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ достаточно ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ инструкции ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ†Π΅Π»ΡŒ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅.

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ всСх Π²Π°ΡˆΠΈΡ… ΠΈΠ΄Π΅ΠΉ ΠΈ мыслСй Π½Π° Π±ΡƒΠΌΠ°Π³Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТным, Π½ΠΎ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒΡΡ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ сущСствСнно ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΡΠΎΠ·Π½Π°Ρ‚ΡŒ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. НаписаниС этой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π΄ΠΈΠ·Π°ΠΉΠ½ вашСго ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Π°ΠΌ придСтся Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ свои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄.

***

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

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

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

admin
11 дСкабря 2018

ООП Π½Π° Python: ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python допускаСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ Π² Π΅Π³ΠΎ основС...
admin
28 июня 2018

3 самых Π²Π°ΠΆΠ½Ρ‹Ρ… сфСры примСнСния Python: возмоТности языка

БущСствуСт мноТСство областСй примСнСния Python, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ особСнно...
admin
13 фСвраля 2017

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python: ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π΄ΠΎ профСссионала

Пошаговая инструкция для всСх, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python...