Pep 8 Π½Π° русском: PEP 8 — руководство ΠΏΠΎ написанию ΠΊΠΎΠ΄Π° Π½Π° Python

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

PEP8, ΠΏΡ€Π°Π²ΠΈΠ»Π° составлСния идСального ΠΊΠΎΠ΄Π° для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Python, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΆΠΈΠ²ΠΎΠΌΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΡƒ, развиваСтся ΠΈΒ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ возмоТности благодаря многочислСнному ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΌΡƒ сообщСству согласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ и стандартам PEP. PEP – Python Enhancement Proposal, прСдлоТСния ΠΏΠΎΒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ Python. Π­Ρ‚ΠΈ стандарты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для Π½ΠΎΠ²Ρ‹Ρ… ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… возмоТностСй языка Python. Π‘Π°ΠΌΡ‹ΠΉ извСстный PEP ΠΈΠΌΠ΅Π΅Ρ‚ восьмой порядковый Π½ΠΎΠΌΠ΅Ρ€. PEP8 содСрТит ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² написания красивого ΠΈΒ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° на языкС Python.

Под Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π° Π³Π»Π°Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΒ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ·Β 19 ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² философии Python (Zen of Python). ΠŸΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ Β«ΠΏΡ€ΠΎΡ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒΒ» Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π» Π²Β Π²ΠΈΠ΄Ρƒ Π°Π²Ρ‚ΠΎΡ€. Π’Π°ΠΊΠΆΠ΅, Ссли хочСтся, вмСсто русской Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ этих постулатов, ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ тСкст Π’ΠΈΠΌΠ° ΠŸΠ΅Ρ‚Π΅Ρ€ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ запустив Π²ΠΎΡ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

import this

Для Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ PEP8?

(Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)

PEP8 сущСствуСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ β€œΡ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒβ€ž ΠΊΠΎΠ΄Π°. Но почСму этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ? ΠŸΠΎΡ‡Π΅ΠΌΡƒ написаниС Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ кода – ΠΎΠ΄ΠΈΠ½ ΠΈΠ·Β Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² языка Python?

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

Если Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ программист Python, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ тяТСло Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ опрСдСлСнная Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΏΠΎΒ ΠΏΡ€ΠΎΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π½Π΅ΠΉ послС Π΅Π΅ написания. Однако, Ссли Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ рСкомСндациям PEP8, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, ваш ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Β ΠΏΠΎΠ»Π½ΠΎΠΌ порядкС. Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ достаточно ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², в соотвСтствии с раздСлСниСм на логичСскиС Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°.

БоблюдСниС PEP8 особСнно Π²Π°ΠΆΠ½ΠΎ, Ссли Π²Ρ‹ в поисках вакансии python-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Чистый ΠΈΒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ высокий профСссионализм. Он Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»ΡŽ о вашСм ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ структурирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Если ТС Π²Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ Python-программист, Ρ‚ΠΎΠ³Π΄Π° с помощи PEP8 ΠΌΠΎΠΆΠ½ΠΎ ΡΒ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ с другими программистами для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π₯ΠΎΡ€ΠΎΡˆΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Β Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΡΠΎΠ±ΡƒΡŽ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ. Π›ΡŽΠ΄ΠΈ, Ρ€Π°Π½Π΅Π΅ нС видСвшиС вас, Π½ΠΎΒ Π·Π½Π°ΠΊΠΎΠΌΡ‹Π΅ с вашим ΠΊΠΎΠ΄ΠΎΠΌ, Π±ΡƒΠ΄ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, понимая идСю, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ донСсти.

НСгласная Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±Β ΠΈΠΌΠ΅Π½Π°Ρ…

(Π―Π²Π½ΠΎΠ΅ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ нСявноС)

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

ΠΠ΅Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ l, O, ΠΈΠ»ΠΈ I в качСствС каких‑либо ΠΈΠΌΠ΅Π½ из‑за риска ΡΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΠΈΡ… с 1 ΠΈΒ 0, в зависимости ΠΎΡ‚Β ΡˆΡ€ΠΈΡ„Ρ‚Π°.

O = 2  # Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΡ€Π°Π²Π½ΡΡ‚ΡŒ 2 ΠΊ Π½ΡƒΠ»ΡŽ.

Π‘Ρ‚ΠΈΠ»ΠΈ имСнования

Π’Β Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ описаны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ из распространСнных стилСй имСнования Π²Β ΠΊΠΎΠ΄Π΅ Python ΠΈΒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ случаи, ΠΊΠΎΠ³Π΄Π° ΠΈΡ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

ВипБоглашСниС ΠΎΠ±Β ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΠ˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ слово ΠΈΠ»ΠΈ слова Π²Β Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС. Для удобства чтСния раздСляйтС слова ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ. function, my_function
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄Π½Ρƒ ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ, слово ΠΈΠ»ΠΈ слова. Для удобства чтСния раздСляйтС слова ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.x, var, my_variable
ΠšΠ»Π°ΡΡΡ‹ΠšΠ°ΠΆΠ΄ΠΎΠ΅ слово Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ с заглавной Π±ΡƒΠΊΠ²Ρ‹. НС раздСляйтС слова ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎΡ‚ ΡΡ‚ΠΈΠ»ΡŒ называСтся Β«Π΄Π΅Π»ΠΎ Π²Π΅Ρ€Π±Π»ΡŽΠ΄Π°Β».Model, MyClass
ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ слово ΠΈΠ»ΠΈ слова Π²Β Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС. Для удобства чтСния раздСляйтС слова ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.class_method, method
ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄Π½Ρƒ Π·Π°Π³Π»Π°Π²Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ, слово ΠΈΠ»ΠΈ слова. Для удобства чтСния раздСляйтС слова ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.CONSTANT, MY_CONSTANT, MY_LONG_CONSTANT
ΠœΠΎΠ΄ΡƒΠ»ΠΈΠ˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ слова ΠΈΠ»ΠΈ слова Π²Β Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС. Для удобства чтСния раздСляйтС слова ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.module.py, my_module.py
ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ слова ΠΈΠ»ΠΈ слова Π²Β Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС. НС раздСляйтС слова ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.package, mypackage

Помимо Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… стилСй имСнования в вашСм ΠΊΠΎΠ΄Π΅, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ сами ΠΈΠΌΠ΅Π½Π°. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ нСсколько совСтов, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это максимально эффСктивно.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΈΠΌΠ΅Π½ΠΈ

Π’Ρ‹Π±ΠΎΡ€ ΠΈΠΌΠ΅Π½ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов ΠΈΒ Ρ‚.Β Π΄. ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. ΠŸΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ свой Π²Ρ‹Π±ΠΎΡ€ ΠΈΠΌΠ΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это сдСлаСт ваш ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Π›ΡƒΡ‡ΡˆΠΈΠΉ способ Π½Π°Π·Π²Π°Ρ‚ΡŒ ваши ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Β PythonΒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ понятно, Ρ‡Ρ‚ΠΎ прСдставляСт собой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

ΠŸΡ€ΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… у вас ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ соблазн Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ простыС, состоящиС ΠΈΠ·Β ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠΌΠ΅Π½Π° Π²Β Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

x. Но Ссли Π²Ρ‹ Π½Π΅Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ x в качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° матСматичСской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, нСпонятно, Ρ‡Ρ‚ΠΎ прСдставляСт собой этот самый x. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ имя Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π²Β Π²ΠΈΠ΄Π΅ строки ΠΈΒ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСз строки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ по‑другому ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ имя.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ что‑то Π²Ρ€ΠΎΠ΄Π΅ этого:

# НС рСкомСндуСтся
x = 'Иван ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²'
y, z = x.split()

Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½ΠΎΒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой x, y ΠΈΒ z. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±ΠΈΠ²Π°Ρ‚ΡŒ с толку соавторов. Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΈΠΌΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ:

# РСкомСндуСтся
name = 'Иван ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²'
first_name, last_name = name.split()

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΒ ΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌΡ‹Ρ… Π²Π°ΠΌΠΈ Π±ΡƒΠΊΠ², ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ соблазн ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сокращСния ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΈΠΌΠ΅Π½. Π’Β ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±Ρ‹Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° функция

db, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ x ΠΈΒ ΡƒΠ΄Π²Π°ΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ:

# НС рСкомСндуСтся
def db(x):
    return x * 2

На пСрвый взгляд, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌΒ β€” это вСдь ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ сокращСниСм для double! ΠΠΎΒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ к этому ΠΊΠΎΠ΄Ρƒ Ρ‡Π΅Ρ€Π΅Π· нСсколько Π΄Π½Π΅ΠΉ. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π²Ρ‹ Π·Π°Π±ΡƒΠ΄Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΎΠΉ смысл Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π»ΠΈ в эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΒ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это сокращСниС ΠΎΡ‚Β database.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ понятСн:

# РСкомСндуСтся
def multiply_by_two(x):
    return x * 2

Π’Π°Β ΠΆΠ΅ самая философия относится и ко всСм ΠΏΡ€ΠΎΡ‡ΠΈΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Β Python. ВсСгда ΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π΅ΠΌΠΊΠΈΠ΅ ΠΈΒ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹Π΅ названия.

РасполоТСниС кода

(ΠšΡ€Π°ΡΠΈΠ²ΠΎΠ΅ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΡƒΡ€ΠΎΠ΄Π»ΠΈΠ²ΠΎΠ΅)

Π’ΠΎ, ΠΊΠ°ΠΊ Π’Ρ‹ располоТитС ваш ΠΊΠΎΠ΄, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π²Β ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π΅Π³ΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ. В этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ восприятия вашСго ΠΊΠΎΠ΄Π°.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Β 79 символов на строку, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π²Β PEP8.

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

ΠžΠΊΡ€ΡƒΠΆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ и классы Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня двумя пустыми строками. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ и классы Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ самодостаточны ΠΈΒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π˜ΠΌΠ΅Π΅Ρ‚ смысл Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²ΠΎΠΊΡ€ΡƒΠ³ Π½ΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ пространство, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ясно, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹:

class MyFirstClass:
    pass
class MySecondClass:
    pass
def top_level_function():
    return None

ΠžΠ±ΠΎΡΠΎΠ±ΡŒΡ‚Π΅ опрСдСлСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ классов ΠΎΠ΄Π½ΠΎΠΉ пустой строкой. Π’Π½ΡƒΡ‚Ρ€ΠΈ класса всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ связаны Π΄Ρ€ΡƒΠ³ с другом. РСкомСндуСтся ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ строку:

class MyClass:
    def first_method(self):
        return None
    def second_method(self):
        return None

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ пустыС строки Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ шаги. Иногда слоТная функция Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько шагов ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ return. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ шагом.

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

def calculate_variance(number_list):
    sum_list = 0
    for number in number_list:
        sum_list = sum_list + number
    mean = sum_list / len(number_list)
    sum_squares = 0
    for number in number_list:
        sum_squares = sum_squares + number**2
    mean_squares = sum_squares / len(number_list)
    return mean_squares - mean**2

Если Π²Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, это ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π° ΠΈΒ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚.

Максимальная Π΄Π»ΠΈΠ½Π° строки ΠΈΒ Ρ€Π°Π·Ρ€Ρ‹Π² строки

PEP8 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки 79 символами. Π­Ρ‚ΠΎ рСкомСндуСтся Π΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΈΠΌΠ΅Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² рядом Π΄Ρ€ΡƒΠ³ с другом, Π°Β Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ пСрСноса строк.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, нС всСгда Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρ‹ всСх ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π΄ΠΎΒ 79 символов. PEP8 Ρ‚Π°ΠΊΠΆΠ΅ описываСт способы, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько строк. Python ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ продолТСния строки, Ссли ΠΊΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ Π²Β ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки:

def function(arg_one, arg_two, arg_three, arg_four): return arg_one

Если ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ строки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нС прСдставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ для Ρ€Π°Π·Ρ€Ρ‹Π²Π° строки:

from mypkg import example1, \
    example2, example3

Π’Π°ΠΆΠ½ΠΎ: Ссли Ρ€Π°Π·Ρ€Ρ‹Π² строки Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ слоТСниС ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ.

ΠžΡ‚ΡΡ‚ΡƒΠΏΡ‹

(Π”ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это)

ΠžΡ‚ΡΡ‚ΡƒΠΏΡ‹ ΠΈΠ»ΠΈΒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²Β Π½Π°Ρ‡Π°Π»Π΅ строки — ΠΊΡ€Π°ΠΉΠ½Π΅ ваТная Ρ‡Π°ΡΡ‚ΡŒ в синтаксисС Python. Как Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π΄Ρ€ΡƒΠ³ с другом ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π²Β Python ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡƒΡ€ΠΎΠ²Π½ΠΈ строк.

x = 2
if x > 6:
    print('x большС, Ρ‡Π΅ΠΌ 6')

ΠžΡ‚ΡΡ‚ΡƒΠΏ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π΅Ρ‚ сигнал Python об условном Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ в случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if

Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True. Π ΠΎΠ²Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉΒ ΠΆΠ΅ отступ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Python, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠ΄ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊΒ Π΄Π°Π½Π½ΠΎΠΌΡƒ классу. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» расстановки отступов всСго Π΄Π²Π° ΠΈΒ ΠΎΠ½ΠΈ Π½ΠΈΠΆΠ΅:

  1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π° для отступа;

  2. ΠžΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌ, а нС табуляции.

ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Вабуляции

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ваш Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° на вставку Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Tab. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Β Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π²Β Python 3 Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ смСшСниС ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² и табуляции. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ отступы ΠΈΒ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ этого Π²Ρ‹Π±ΠΎΡ€Π°. Π˜Π½Π°Ρ‡Π΅, вмСсто выполнСния ΠΊΠΎΠ΄Π°, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

(Если Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, это Π±Ρ‹Π»Π° плохая идСя)

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

  1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΏΡ€ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π΅Β Π±ΠΎΠ»Π΅Π΅ 72 символов;

  2. ΠΠ΅Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сокращСния, Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ прСдлоТСния с заглавной Π±ΡƒΠΊΠ²Ρ‹;

  3. НС забывайтС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ коммСнтария:

name = 'John Smith'  # Student Name

ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ в выраТСниях и утвСрТдСниях

(Π Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½ΠΎΠ΅ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΠ»ΠΎΡ‚Π½ΠΎΠ΅)

ΠŸΠΎΠ»Π΅Π·Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² в выраТСниях ΠΈΒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ. Если ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² нСдостаточно, ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС сгруппированы вмСстС. Если ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² слишком ΠΌΠ½ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ слоТно Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ строки ΠΊΠΎΠ΄Π° Π², логичСски связанныС, Π±Π»ΠΎΠΊΠΈ.

ΠžΠΊΡ€ΡƒΠΆΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ с каТдой стороны:

  1. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присвоСния ( =, +=, -= ΠΈΒ Ρ‚.Β ΠΏ.)

  2. БравнСния ( ==, !=, >, <. >=, <= ) ΠΈΒ (is, is not, in, not in)

  3. ЛогичСскиС (and, or, not)

Когда = ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для присвоСния значСния для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅Β ΠΎΠΊΡ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ программисту

(ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ слоТного)

НСобходимо Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Β Python ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ нСсколько способов для выполнСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΒ Ρ‚ΠΎΠ³ΠΎΒ ΠΆΠ΅ дСйствия. Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ рассказано, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π°Π²Π»ΡΡ‚ΡŒΡΡ от двусмыслСнности ΠΏΡ€ΠΈ сохранСнии ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

# НС рСкомСндуСтся
my_bool = 4 > 3
if my_bool == True:
    return '4 большС 3'

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° эквивалСнтности здСсь Π½Π΅Β ΠΈΠΌΠ΅Π΅Ρ‚ нСобходимости, my_bool ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° значСния, True ΠΈΠ»ΠΈ False. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ достаточно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

# РСкомСндуСтся
if my_bool:
    return '4 is bigger than 3'

Π­Ρ‚ΠΎΡ‚ способ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if с логичСским ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ мСньшС ΠΊΠΎΠ΄Π°, поэтому PEP8 Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ.

Когда Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PEP8

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

  1. Если соблюдСниС PEP8 Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΡΒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм;

  2. Если ΠΊΠΎΠ΄, ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠΌΡƒ, Π½Π°Π΄ Ρ‡Π΅ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, нСсовмСстим с PEP8;

  3. Если ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ совмСстимым ΡΒ Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ вСрсиями Python.

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

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

Если ТС у вас имССтся ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π²Β ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ тонкостСй PEP8, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с полной англоязычной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ рСсурс pep8.org, содСрТащий Ρ‚ΡƒΒ ΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π²Β Π±ΠΎΠ»Π΅Π΅ структурированном Π²ΠΈΠ΄Π΅. В этих Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅, нС попавшиС в эту Β«Π²Ρ‹ΠΆΠΈΠΌΠΊΡƒΒ», Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ.

дальшС

Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ

PEP 8, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΡ‹ΠΉ PEP8 ΠΈΠ»ΠΈ PEP-8, прСдставляСт собой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, содСрТащий Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ написанию ΠΊΠΎΠ΄Π° Π½Π° Python. Он Π±Ρ‹Π» составлСн Π² 2001 Π³ΠΎΠ΄Ρƒ Π“Π²ΠΈΠ΄ΠΎ Π²Π°Π½ Россумом, Π‘Π°Ρ€Ρ€ΠΈ Π’Π°Ρ€ΡˆΠ°Π²ΠΎΠΉ ΠΈ Ником Когланом. Основная Ρ†Π΅Π»ΡŒ PEP 8 – ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π½Π° Python.

PEP Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Python Enhancement Proposal (Β«ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡŽ PythonΒ»), ΠΈ ΠΈΡ… нСсколько. PEP β€” это Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ для сообщСства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ для Python, ΠΈ содСрТит Ρ‚Π°ΠΊΠΈΠ΅ аспСкты языка, ΠΊΠ°ΠΊ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΈ ΡΡ‚ΠΈΠ»ΡŒ.

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

Из Π΄Π°Π½Π½ΠΎΠΉ сСрии статСй Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅:
  • ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ Python-ΠΊΠΎΠ΄, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ PEP8;
  • ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠ²ΠΎΠ΄Ρ‹ Π»Π΅ΠΆΠ°Ρ‚ Π² основС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π² PEP8;
  • ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Python ΠΏΠΎ PEP8.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ PEP 8

β€œΠ§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ значСниС”, β€”Β Π”Π·Π΅Π½ Python

PEP 8 сущСствуСт для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ читаСмости ΠΊΠΎΠ΄Π° Python. Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½Π° ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ? ΠŸΠΎΡ‡Π΅ΠΌΡƒ написаниС Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· руководящих ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² языка Python?

Как сказал Π“Π²ΠΈΠ΄ΠΎ Π²Π°Π½ Россум: «Код Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‡Π°Ρ‰Π΅, Ρ‡Π΅ΠΌ ΠΏΠΈΡˆΡƒΡ‚Β». Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ нСсколько ΠΌΠΈΠ½ΡƒΡ‚ ΠΈΠ»ΠΈ Ρ†Π΅Π»Ρ‹ΠΉ дСнь Π½Π° написаниС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ дальнСйшСм Π²Π°ΠΌ Π½Π΅ придётся Π΅Π³ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ. Но ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚Π΅. Π­Ρ‚ΠΎΡ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ этому Ρ„Π°ΠΉΠ»Ρƒ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ этот ΠΊΠΎΠ΄ ΠΈ Π·Π°Ρ‡Π΅ΠΌ Π²Ρ‹ Π΅Π³ΠΎ написали. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Если Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² Python, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ ΡƒΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· нСсколько Π΄Π½Π΅ΠΉ ΠΈΠ»ΠΈ нСдСль Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°. Но Ссли Π²Ρ‹ слСдуСтС PEP 8, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°Π·Π²Π°Π»ΠΈ свои ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅Β . Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ достаточно ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΡΠΎΠ±ΠΈΡ‚ΡŒ логичСскиС шаги. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ снабдили свой ΠΊΠΎΠ΄ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ коммСнтариями. ВсС это сдСлаСт ваш ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΊ Π½Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³Ρ‡Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ PEP 8 для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Python Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ приятной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ PEP 8 особСнно Π²Π°ΠΆΠ½ΠΎ, Ссли Π²Ρ‹ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΠ΅Ρ‚Π΅ Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. НаписаниС понятного, Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ профСссионализмС. Π­Ρ‚ΠΎ скаТСт Ρ€Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄.

Работая Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π²Π°ΠΌ, скорСС всСго, придСтся ΡΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ программистами. Π—Π΄Π΅ΡΡŒ, ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄. Π”Ρ€ΡƒΠ³ΠΈΠ΅ люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΈΠΊΠΎΠ³Π΄Π° Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ встрСчали вас ΠΈ Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ваш ΡΡ‚ΠΈΠ»ΡŒ программирования, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ ваш ΠΊΠΎΠ΄. НаличиС руководящих ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ слСдуСтС ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ вашСго ΠΊΠΎΠ΄Π°.

[python_ad_block]

Когда стоит ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PEP 8

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос – Π½ΠΈΠΊΠΎΠ³Π΄Π°. Если Π²Ρ‹ строго слСдуСтС PEP 8, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ чистый, ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ принСсСт ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π²Π°ΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ сотрудникам ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ работодатСлям.

Однако Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Π² PEP 8 Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

  • соблюдСниС PEP 8 Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм
  • ΠΊΠΎΠ΄, связанный с Ρ‚Π΅ΠΌ, Π½Π°Π΄ Ρ‡Π΅ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, нСсовмСстим с PEP 8
  • ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ совмСстимым со старыми вСрсиями Python

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ соотвСтствиС ΠΊΠΎΠ΄Π° PEP 8

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ соотвСтствуСт PEP 8, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ. ΠŸΠΎΠΌΠ½ΠΈΡ‚ΡŒ всС эти ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСпросто. ОсобСнно ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ стандарту PEP 8. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π΅ΡΡ‚ΡŒ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ этот процСсс.

БущСствуСт Π΄Π²Π° класса инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для обСспСчСния соотвСтствия PEP 8: Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ ΠΈ Π°Π²Ρ‚ΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‚Π΅Ρ€Ρ‹.

Π›ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹

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

Π’ΠΎΡ‚ ΠΏΠ°Ρ€Π° Π»ΡƒΡ‡ΡˆΠΈΡ… Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠ² для ΠΊΠΎΠ΄Π° Π½Π° Python:

pycodestyle

Π­Ρ‚ΠΎ инструмСнт для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ вашСго ΠΊΠΎΠ΄Π° Π½Π° соотвСтствиС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ стилСвым соглашСниям Π² PEP8.

УстановитС pycodestyle с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip:

$ pip install pycodestyle

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ pycodestyle ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ pycodestyle code. py

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

code.py:1:17: E231 missing whitespace after ','
code.py:2:21: E231 missing whitespace after ','
code.py:6:19: E711 comparison to None should be 'if cond is None:'
flake8

Π­Ρ‚ΠΎ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сочСтаСт Π² сСбС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, pyflakes ΠΈΒ pycodestyle.

УстановитС flake8 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽΒ pip:

$ pip install flake8

ЗапуститС flake8 ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ flake8 code. py

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°:

code.py:1:17: E231 missing whitespace after ','
code.py:2:21: E231 missing whitespace after ','
code.py:3:17: E999 SyntaxError: invalid syntax
code.py:6:19: E711 comparison to None should be 'if cond is None:'

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ строка Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π’Π°ΠΊΠΆΠ΅ доступны Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для Atom,Β Sublime Text,Β Visual Studio Code ΠΈΒ VIM.

ΠžΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ Pythonist. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΡΡ‚Π°Ρ‚ΡŒΡŽ Β«ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Python: сравнСниС Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠ² ΠΈ совСты ΠΏΠΎ ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽΒ».

АвтоформаттСры

АвтоформаттСры – это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ автоматичСски Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽΡ‚ ваш ΠΊΠΎΠ΄ для соотвСтствия PEP 8. Одна ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” black. Она автоматичСски Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ для привСдСния Π΅Π³ΠΎ Π² соотвСтствиС с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ» PEP 8. ЕдинствСнноС, ΠΎΠ½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки Π΄ΠΎ 88 символов, Π° Π½Π΅ Π΄ΠΎ 79, ΠΊΠ°ΠΊ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ΠΎ стандартом. Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Ρ„Π»Π°Π³ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅.

УстановитС black с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip. Для запуска трСбуСтся Python 3.6+:

$ pip install black

Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠ°ΠΊ ΠΈ Π² случаС с Π»ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΌΠΈ. Допустим, Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ соотвСтствуСт PEP 8, Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ code.py:

for i in range(0,3):
    for j in range(0,3):
        if (i==2):
            print(i,j)

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку:

$ black code. py
reformatted code.py
All done! ✨ ? ✨

code.pyΒ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π²ΠΈΠ΄Ρƒ:

for i in range(0, 3):
    for j in range(0, 3):
        if i == 2:
            print(i, j)

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ строки, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ --line-length:

$ black --line-length=79 code.py
reformatted code.py
All done! ✨ ? ✨

Π Π°Π±ΠΎΡ‚Π° Π΄Π²ΡƒΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π²Ρ‚ΠΎΡ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‚Π΅Ρ€ΠΎΠ² – autopep8Β ΠΈΒ yapf – Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅ blackΒ .

О Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти инструмСнты, Ρ…ΠΎΡ€ΠΎΡˆΠΎ написано Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Python Code Quality: Tools & Best PracticesΒ  АлСксандра Π²Π°Π½ Π’ΠΎΠ».

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ части ΡΡ‚Π°Ρ‚ΡŒΠΈ How to Write Beautiful Python Code With PEP 8.


Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎ PEP 8 Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅:

  • НСйминг ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°
  • ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Π²Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

7 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python для Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π² сопровоТдСнии ΠΊΠΎΠ΄Π°

Π£Π΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

β€” Π”Π·Π΅Π½ ΠŸΠΈΡ‚ΠΎΠ½Π°, Π’ΠΈΠΌ ΠŸΠΈΡ‚Π΅Ρ€Ρ

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

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‰ΡƒΡŽ Ρ€Π΅ΠΌΠΎΠ½Ρ‚ΠΎΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности вашСго ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½Π°ΡˆΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Π»ΠΈΠ½Ρ‚ΠΈΠ½Π³Π° ΠΊΠΎΠ΄Π° (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибок PEP 8 ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… стилСй), обСспСчСния согласованности стиля ΠΈ обСспСчСния ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠ³ΠΎ покрытия тСстами ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ достиТСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ зрСлости.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свой ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠ΄Π°

PEP 8 β€” это руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ ΠΊΠΎΠ΄Π° Python, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° для Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π° строки, отступы, многострочныС выраТСния ΠΈ соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…. Π£ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ свои собствСнныС ΠΏΡ€Π°Π²ΠΈΠ»Π° стиля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ PEP 8. ЦСлью любого руководства ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ ΠΊΠΎΠ΄Π° являСтся обСспСчСниС соблюдСния Π΅Π΄ΠΈΠ½Ρ‹Ρ… стандартов Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Π² сопровоТдСнии. Π’ΠΎΡ‚ Ρ‚Ρ€ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄.

1. Pylint

Pylint β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая провСряСт Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ стиля PEP 8 ΠΈ распространСнныС ошибки. Он Ρ…ΠΎΡ€ΠΎΡˆΠΎ интСгрируСтся с нСсколькими популярными Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ IDE, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Для установки запуститС pip install pylint .

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Pylint ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, запуститС pylint [options] path/to/dir ΠΈΠ»ΠΈ pylint [options] path/to/module.py . Pylint Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² консоль прСдупрСТдСния ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡΡ… стиля ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ошибки провСряСт Pylint, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ pylintrc .

2. Flake8

Flake8 β€” это «инструмСнт Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ PEP8, Pyflakes (Π°Π½Π°Π»ΠΎΠ³ Pylint), McCabe (срСдство ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ слоТности ΠΊΠΎΠ΄Π°) ΠΈ сторонниС ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ стиля ΠΈ качСства Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° PythonΒ».

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Flake8, запуститС pip install flake8 . Π—Π°Ρ‚Π΅ΠΌ запуститС flake8 [options] path/to/dir ΠΈΠ»ΠΈ flake8 [options] path/to/module.py , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΅Π³ΠΎ ошибки ΠΈ прСдупрСТдСния.

Как ΠΈ Pylint, Flake8 допускаСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ настройку Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ провСряСт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Π² Ρ‚ΠΎΠΌ числС нСсколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² для автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ вашСго ΠΊΠΎΠ΄Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… вашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Flake8 интСгрируСтся с популярными Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ IDE, Π½ΠΎ эти инструкции ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Flake8 с вашим Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠ»ΠΈ IDE, ΠΏΠΎΠΈΡ‰ΠΈΡ‚Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ»Π°Π³ΠΈΠ½ Flake8 для Sublime Text).

3. Isort

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

УстановитС isort с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip install isort ΠΈ запуститС Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ isort path/to/module.py . Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ находятся Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ isort ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ многострочный ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² . isort.cfg Ρ„Π°ΠΉΠ».

Подобно Flake8 ΠΈ Pylint, isort Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Π΅Π³ΠΎ с популярными Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ IDE.

ΠžΡ‚Π΄Π°ΠΉΡ‚Π΅ свой ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠ΄Π° Π½Π° аутсорсинг

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

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся использованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, которая автоматичСски ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ваш ΠΊΠΎΠ΄ Π²ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ соотвСтствуСт трСбованиям PEP 8. ВсС Ρ‚Ρ€ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ настройки ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для форматирования ΠΊΠΎΠ΄Π°. НСкоторыС ΠΈΠ· Π½ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ самоувСрСнны, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, поэтому, ΠΊΠ°ΠΊ с Pylint ΠΈ Flake8, Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ настройки, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΆΠΈΡ‚ΡŒβ€¦ ΠΈ нСизмСняСмыС значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΆΠΈΡ‚ΡŒ с .

4. АвтопСп8

Autopep8 автоматичСски Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π²Π°ΠΌΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅. Он ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ отступы строк, исправит отступы, ΡƒΠ΄Π°Π»ΠΈΡ‚ лишниС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚ распространСнныС ошибки сравнСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с логичСскими значСниями ΠΈ None ). ΠŸΠΎΠ»Π½Ρ‹ΠΉ список исправлСний смотритС Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Для установки запуститС pip install --upgrade autopep8 . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° мСстС, запуститС autopep8 --in-place --aggressive --aggressive . агрСссивныС Ρ„Π»Π°Π³ΠΈ (ΠΈ ΠΈΡ… количСство) ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ контроля Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ autopep8 Π½Π°Π΄ своим стилСм ΠΊΠΎΠ΄Π°. Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎΠ± агрСссивных опциях.

5. Yapf

Yapf β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ пСрСформатирования ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Он отличаСтся ΠΎΡ‚ autopep8 Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ просто устраняСт Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ PEP 8. Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ PEP 8, Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ³ΠΎ стиля ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π»ΡƒΡ‡ΡˆΠ΅ для удобочитаСмости.

Для установки запуститС pip install yapf . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, запуститС yapf [options] path/to/dir ΠΈΠ»ΠΈ yapf [options] path/to/module.py . Π’Π°ΠΊΠΆΠ΅ имССтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² настройки.

6. Π§Π΅Ρ€Π½Ρ‹ΠΉ

Π§Π΅Ρ€Π½Ρ‹ΠΉ β€” Π½ΠΎΠ²ΠΈΠ½ΠΊΠ° срСди Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠ², ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ΄ Π½Π° мСстС. Он ΠΏΠΎΡ…ΠΎΠΆ Π½Π° autopep8 ΠΈ Yapf, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ самоувСрСн. Π£ Π½Π΅Π³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ возмоТностСй для настройки, Ρ‡Ρ‚ΠΎ, Π² ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ, ΠΈ Π²Π°ΠΆΠ½ΠΎ. ИдСя состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ стилС ΠΊΠΎΠ΄Π°; СдинствСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π° вас. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ± ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… возмоТностях настройки ΠΈ инструкциях ΠΏΠΎ ΠΈΡ… ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Для Black трСбуСтся Python 3.6+, Π½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Python 2. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, запуститС pip install black . Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄, запуститС: black path/to/dir ΠΈΠ»ΠΈ black path/to/module.py .

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ тСстами

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

7. ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅

Π£ покрытия Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ сообщаСт Π²Π°ΠΌ ΠΎ вашСм тСстовом ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π½Π° консоль ΠΈΠ»ΠΈ Π½Π° HTML-страницу ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² строк, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отсутствуСт тСстовоС ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ провСряСт ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ запуск.

Для установки запуститС pip install cover . Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΅Π΅ Π²Ρ‹Π²ΠΎΠ΄, запуститС ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ run [path/to/module.py] [args] , ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, для ΠΊΠ°ΠΊΠΈΡ… строк ΠΊΠΎΠ΄Π° отсутствуСт ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, запуститС ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ -m .

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ

НСпрСрывная интСграция (CI) β€” это ряд процСссов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ для автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ошибок Π»ΠΈΠ½Ρ‚Π΅Ρ€Π° ΠΈ минимального покрытия тСстами ΠΏΠ΅Ρ€Π΅Π΄ слияниСм ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°. БущСствуСт мноТСство бСсплатных ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… инструмСнтов для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ этого процСсса, ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ пошаговоС руководство Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ настройка процСсса Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ шагом Π² устранСнии Π±Π»ΠΎΠΊΠΎΠ² для Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π² сопровоТдСнии ΠΊΠΎΠ΄Π°, Π²Π°ΠΌ слСдуСт ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ инструмСнты Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ; ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Travis CI ΠΈ Jenkins, Π² частности.


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

Π­Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° находится ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Creative Commons Attribution-Share Alike 4.0 International License.

Как ΠΎΠ±Π²Π°Π» российского рубля ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ваш ΠΏΠΎΡ€Ρ‚Ρ„Π΅Π»ΡŒ

Уэйн Π”Π°Π³Π³Π°Π½, ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒ BenzingaΒ 

28 фСвраля 2022 Π³. , 11:41 | 3 min read

  • Богласно FactSet, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ S&P 500 ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΊΠΎΠ»ΠΎ 1% своСго ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π΄ΠΎΡ…ΠΎΠ΄Π° ΠΎΡ‚ России ΠΈ Π£ΠΊΡ€Π°ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ индСксныС Ρ„ΠΎΠ½Π΄Ρ‹ S&P 500, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ популярный SDPR S&P 500 ETF Trust, ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ влияниС российского ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°.
  • Π˜Π½Π²Π΅ΡΡ‚ΠΎΡ€Ρ‹, Π²Π»Π°Π΄Π΅ΡŽΡ‰ΠΈΠ΅ ETF Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Ρ€Ρ‹Π½ΠΊΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‚ нСбольшоС влияниС Π½Π° Россию.

Российский Ρ€ΡƒΠ±Π»ΡŒ торговался Π½Π° ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ΅ 119 Π·Π° Π΄ΠΎΠ»Π»Π°Ρ€ БША Π² понСдСльник ΡƒΡ‚Ρ€ΠΎΠΌ, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с 84 Π·Π° Π΄ΠΎΠ»Π»Π°Ρ€ Π² Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅, сниТСниС ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π° 30%. Π Π΅Π·ΠΊΠΎΠ΅ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ курса российской Π²Π°Π»ΡŽΡ‚Ρ‹ стало ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π½Π° Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ сообщСства ΠΈ санкции ΠΏΡ€ΠΎΡ‚ΠΈΠ² России послС Π΅Π΅ вторТСния Π² Π£ΠΊΡ€Π°ΠΈΠ½Ρƒ Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅.

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π°Π½ΠΊ России объявил Π² понСдСльник, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Ρ€Ρ‹Π½ΠΊΠΈ Π°ΠΊΡ†ΠΈΠΉ ΠΈ Π΄Π΅Ρ€ΠΈΠ²Π°Ρ‚ΠΈΠ²ΠΎΠ² останутся Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π² понСдСльник, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ связанныС с РоссиСй Π°ΠΊΡ†ΠΈΠΈ ΠΈ ETF сильно пострадали Π½Π° ΠΌΠΈΡ€ΠΎΠ²Ρ‹Ρ… Ρ€Ρ‹Π½ΠΊΠ°Ρ… Π² понСдСльник.

Бсылка ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅: Π¦Π΅Π½Ρ‹ Π½Π° Π³Π°Π·: ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‚ΠΎΡ€ΠΆΠ΅Π½ΠΈΠ΅ России Π² Π£ΠΊΡ€Π°ΠΈΠ½Ρƒ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ ваши расходы Π½Π° Π·Π°ΠΏΡ€Π°Π²ΠΊΡƒ

RSX ΠΈ Ρ„ΠΎΠ½Π΄Ρ‹ SPY: Одной ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΆΠ΅Ρ€Ρ‚Π², ΠΏΠΎ понятным ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, стал ETF VanEck Russia ETF RSX, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΏΠ°Π» Π½Π° 22,4%. Π² понСдСльник ΡƒΡ‚Ρ€ΠΎΠΌ. ETF RSX ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Россию, поэтому инвСсторы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ влияниС бСспорядки Π² России ΠΎΠΊΠ°ΠΆΡƒΡ‚ Π½Π° ΠΈΡ… инвСстиции. Но Π΄Ρ€ΡƒΠ³ΠΈΠ΅ популярныС ETF Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ долю участия Π² России.

По Π΄Π°Π½Π½Ρ‹ΠΌ FactSet, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠ· списка S&P 500 ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ лишь ΠΎΠΊΠΎΠ»ΠΎ 1% своСго ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π΄ΠΎΡ…ΠΎΠ΄Π° ΠΎΡ‚ России ΠΈ Π£ΠΊΡ€Π°ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ индСксныС Ρ„ΠΎΠ½Π΄Ρ‹ S&P 500, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ популярныС SDPR S&P 500 ETF Trust SPY, ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ влияниС российского ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°. Π‘Ρ€Π΅Π΄ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ S&P 500 Philip Morris International Inc. PM Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ самый высокий ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΠΈ Π² России ΠΈ Π£ΠΊΡ€Π°ΠΈΠ½Π΅ β€” 8%.

PepsiCo, Inc. PEP ΠΈ Mohawk Industries, Inc. MHK Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ мСста с Π΄ΠΎΡ…ΠΎΠ΄ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΅ 4,5% ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΠ½Π΄Ρ‹, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π² России: Π˜Π½Π²Π΅ΡΡ‚ΠΎΡ€Ρ‹, Π²Π»Π°Π΄Π΅ΡŽΡ‰ΠΈΠ΅ ETF Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Ρ€Ρ‹Π½ΠΊΠΎΠ², ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ долю Π² России. Около 2,7% популярных Π°ΠΊΡ†ΠΈΠΉ Vanguard FTSE Emerging Markets ETF VWO ΡΠ²Π»ΡΡŽΡ‚ΡΡ российскими акциями, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ 2% Π°ΠΊΡ†ΠΈΠΉ iShares Core MSCI Emerging Markets ETF IEMG ΡΠ²Π»ΡΡŽΡ‚ΡΡ российскими. Π€ΠΎΠ½Π΄ WisdomTree Emerging Markets High Divided Fund DEM особСнно сильно зависит ΠΎΡ‚ российских Π°ΠΊΡ†ΠΈΠΉ β€” 6,3%.

НСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… тСматичСских ETF ΠΈΠΌΠ΅ΡŽΡ‚ нСбольшоС присутствиС Π² России. Π€ΠΎΠ½Π΄ iShares MSCI Global Metals & Mining Producers ETF PICK ΠΈΠΌΠ΅Π΅Ρ‚ долю участия Π² России Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ 2,4%. Π€ΠΎΠ½Π΄ Amplify Lithium & Battery Technology ETF BATT ΠΈΠΌΠ΅Π΅Ρ‚ долю 2,2%.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, нСсколько российских Π°ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‚ΠΎΡ€Π³ΡƒΡŽΡ‚ΡΡ Π½Π° основных Ρ„ΠΎΠ½Π΄ΠΎΠ²Ρ‹Ρ… Π±ΠΈΡ€ΠΆΠ°Ρ… БША, Π² настоящСС врСмя остановлСны, Π² Ρ‚ΠΎΠΌ числС Yandex NV YNDX, QIWI PLC QIWI, ΠœΠ΅Ρ‡Π΅Π» ПАО MTL, Ozon Holdings PLC OZON, HeadHunter Group PLC HHR ΠΈ Nexters Inc GDEV.

МнСниС Π‘Π΅Π½Π·ΠΈΠ½Π³Π°: НСсмотря Π½Π° нСдавнюю Π²ΠΎΠ»Π°Ρ‚ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ БША, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ амСриканских инвСсторов ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΎΡ‚ прямых инвСстиций Π² Россию ΠΈΠ»ΠΈ Ρ€ΠΎΡΡΠΈΠΉΡΠΊΡƒΡŽ экономику.

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

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

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