python ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния ΠΊΠΎΠ΄Π°

ΠŸΡ€Π°Π²ΠΈΠ»Π° оформлСния Python-ΠΊΠΎΠ΄Π°

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

РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ отступа. Python 3 Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ смСшиваниС табуляции ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² отступах. Код, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Ρ‚Π΅, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ отступов, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ исправлСн Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ отступы Π² Π½Π΅ΠΌ Π±Ρ‹Π»ΠΈ расставлСны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².

2. Π’ΠΎΡ‡ΠΊΠΈ с запятой

НС раздСляйтС ваши строки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΡ‡Π΅ΠΊ с запятой ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой для раздСлСния ΠΊΠΎΠΌΠ°Π½Π΄, находящихся Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС.

3. Π‘ΠΊΠΎΠ±ΠΊΠΈ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ скобки экономно. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… с Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ return ΠΈΠ»ΠΈ с условной конструкциСй, Ссли Π½Π΅ трСбуСтся ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ пСрСнос строки. Однако скобки Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ.

4. ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² выраТСниях ΠΈ инструкциях

4.1 ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ скобки

4.1.1 НС ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ скобок (ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ…, Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ…).

4.1.2 Никаких ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкой, которая Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², индСкс ΠΈΠ»ΠΈ срСз.

Π₯ΠΎΡ€ΠΎΡˆΠΎ ΠŸΠ»ΠΎΡ…ΠΎ Π₯ΠΎΡ€ΠΎΡˆΠΎ ΠŸΠ»ΠΎΡ…ΠΎ

4.2 ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ рядом с запятой, Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ

4.2.1 ΠŸΠ΅Ρ€Π΅Π΄ запятой, Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π» послС запятой, Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ (ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ случая, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ находятся Π² ΠΊΠΎΠ½Ρ†Π΅ строки).

4.3 ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

4.3.2 НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания (ΠΈΠ»ΠΈ любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°) для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

5. Π”Π»ΠΈΠ½Π° строк

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ строк 79 символами (Π° Π΄Π»ΠΈΠ½Ρƒ строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² β€” 72 символами). Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слСш Π² качСствС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ доступноС Π² Python явноС объСдинСниС строк посрСдством ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°Ρ€Ρƒ скобок Π²ΠΎΠΊΡ€ΡƒΠ³ выраТСния.

Если ваш тСкст Π½Π΅ помСщаСтся Π² ΠΎΠ΄Π½Ρƒ строку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ скобки для явного объСдинСния строк.

Π§Ρ‚ΠΎ касаСтся Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… URL Π² коммСнтариях, Ρ‚ΠΎ располагайтС ΠΈΡ…, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС.

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слСш ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. НапримСр, с Π΄Π»ΠΈΠ½Π½ΠΎΠΉ конструкциСй with для пСрСноса Π±Π»ΠΎΠΊΠ° инструкций.

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

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ (Π±Π΅Π· энтузиазма) пустыС строки Π² ΠΊΠΎΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° логичСскиС части.

Python расцСниваСт символ control+L ΠΊΠ°ΠΊ Π½Π΅Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΉ (whitespace), ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Ρ‹Π² страницы β€” Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, логичСскиС части Π² Ρ„Π°ΠΉΠ»Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… страницах. Однако Π½Π΅ всС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ control+L ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π° Π΅Π³ΠΎ мСстС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ символ.

7. ИмСна

ИмСна, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ:

7.1 ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

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

Π‘Ρ‚ΠΈΠ»ΡŒ mixedCase допускаСтся Π² Ρ‚Π΅Ρ… мСстах, Π³Π΄Π΅ ΡƒΠΆΠ΅ ΠΏΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΡΡ‚ΠΈΠ»ΡŒ β€” для сохранСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости.

7.2 ИмСна ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

ΠœΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°, состоящиС ΠΈΠ· ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π±ΡƒΠΊΠ². МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символы подчёркивания, Ссли это ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’ΠΎ ΠΆΠ΅ самоС относится ΠΈ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ подчёркивания.

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

7.3 ИмСна классов

ВсС ΠΈΠΌΠ΅Π½Π° классов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ соглашСнию CapWords ΠΏΠΎΡ‡Ρ‚ΠΈ Π±Π΅Π· ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Иногда вмСсто этого ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ соглашСния для имСнования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ссли интСрфСйс Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² основном ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

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

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡŽΡ‚ΡΡ классами, ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ примСняСтся ΡΡ‚ΠΈΠ»ΡŒ имСнования классов. Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Error Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠΌΠ΅Π½ΠΈ (Ссли, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ являСтся ошибкой).

7.4 ИмСна констант

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ модуля ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ, Π° слова Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ символами подчСркивания.

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

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‰ΠΈΠ΅ ΠΊΠΎΠ΄Ρƒ, Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ отсутствиС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². ВсСгда исправляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ссли мСняСтС ΠΊΠΎΠ΄!

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ прСдлоТСниями. Если ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ β€” Ρ„Ρ€Π°Π·Π° ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π²ΠΎΠ΅ слово Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ написано с большой Π±ΡƒΠΊΠ²Ρ‹, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π½Π΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, которая начинаСтся с малСнькой Π±ΡƒΠΊΠ²Ρ‹ (Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ отступайтС ΠΎΡ‚ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° для ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…).

Π‘Ρ‚Π°Π²ΡŒΡ‚Π΅ Π΄Π²Π° ΠΏΡ€ΠΎΠ±Π΅Π»Π° послС Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ прСдлоТСния.

Если Π²Ρ‹ β€” программист, Π½Π΅ говорящий ΠΏΠΎ-английски, Ρ‚ΠΎ всё Ρ€Π°Π²Π½ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ английский язык для написания ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². ОсобСнно, Ссли Π½Π΅Ρ‚ увСрСнности Π½Π° 120% Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ люди, говорящиС Π½Π° вашСм Ρ€ΠΎΠ΄Π½ΠΎΠΌ языкС.

8.1 Π‘Π»ΠΎΠΊΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²

Π‘Π»ΠΎΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΠΊΠΎΠ΄ (вСсь ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ), ΠΈΠ΄ΡƒΡ‰ΠΈΠΉ послС Π±Π»ΠΎΠΊΠ°, ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ отступ, Ρ‡Ρ‚ΠΎ ΠΈ сам ΠΊΠΎΠ΄. КаТдая строчка Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с символа # ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° послС Π½Π΅Π³ΠΎ (Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сам тСкст коммСнтария Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ отступа).

8.2 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² строкС с ΠΊΠΎΠ΄ΠΎΠΌ

Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Ρ€Π΅ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ находится Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Ρ‡Ρ‚ΠΎ ΠΈ инструкция. «ВстрочныС» ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒΡΡ хотя Π±Ρ‹ двумя ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΎΡ‚ инструкции. Они Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с символа # ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² строкС с ΠΊΠΎΠ΄ΠΎΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ ΠΎΡ‚ чтСния, Ссли ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ΅.

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

БоглашСния ΠΎ написании Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ (docstrings) зафиксированы Π² PEP 257.

ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ стояли Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС. А Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅, Ссли ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΈ пустая строка.

Для однострочной Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ «»» Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС.

9. Π¦ΠΈΠΊΠ»Ρ‹

9.1 Π¦ΠΈΠΊΠ»Ρ‹ ΠΏΠΎ спискам

Если Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ всСм элСмСнтам списка, Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ (Π΄Π° ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ) Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ способ:

И хотя Π±Ρ‹Π²Π°Π»Ρ‹Π΅ программисты ΠΈΠ»ΠΈ просто Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈ C ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄, это ΠΌΠΎΠ²Π΅Ρ‚ΠΎΠ½.

А Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ списку Π·Π°Π΄ΠΎΠΌ Π½Π°ΠΏΠ΅Ρ€Π΅Π΄, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ reversed:

ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ читаСтся-Ρ‚ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ внятно.

9.2 Π¦ΠΈΠΊΠ»Ρ‹ ΠΏΠΎ списку чисСл

Если Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ ряду чисСл, Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ range Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠ΅Π΅, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ потрСбляСт Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ мСньшС памяти, Ρ‡Π΅ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π² Π±Π»ΠΎΠΊΠ΅ «ΠŸΠ»ΠΎΡ…ΠΎ». А ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ вас ряд ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл!

9.3 Π¦ΠΈΠΊΠ»Ρ‹ ΠΏΠΎ спискам с индСксами

ΠœΠ΅Ρ‚ΠΎΠ΄ enumerate позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сразу индСкс ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· списка, Ρ‡Ρ‚ΠΎ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, прСдоставляСт мноТСство возмоТностСй для дальшнСйшСго проСктирования, Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π»Π΅Π³Ρ‡Π΅ читаСтся ΠΈ воспринимаСтся.

9.4 Π¦ΠΈΠΊΠ»Ρ‹ ΠΏΠΎ Π΄Π²ΡƒΠΌ спискам

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

10. Π˜ΠΌΠΏΠΎΡ€Ρ‚Ρ‹

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС.

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π˜ΠΌΠΏΠΎΡ€Ρ‚Ρ‹ всСгда Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π°, сразу послС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² уровня модуля, строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅Π΄ объявлСниСм констант ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² уровня модуля. Π˜ΠΌΠΏΠΎΡ€Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ сгруппированы Π² порядкС ΠΎΡ‚ самых простых Π΄ΠΎ самых слоТных:

Наряду с Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ отсортированы лСксикографичСски, нСрСгистрозависимо, согласно ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ модуля.

РСкомСндуСтся Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎ ΠΈ Π²Π΅Π΄Π΅Ρ‚ сСбя Π»ΡƒΡ‡ΡˆΠ΅ (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π΄Π°Ρ‘Ρ‚ понятныС сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…), Ссли импортируСмая систСма настроСна Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° заканчиваСтся Π½Π° sys.path ).

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, явный ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ являСтся ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΌΡƒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρƒ, особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со слоТными ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, Π³Π΄Π΅ использованиС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π±Ρ‹Π»ΠΎ Π±Ρ‹ излишнС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ шаблонов ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² ( from import * ), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ нСясным Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² глобальном пространствС ΠΈΠΌΡ‘Π½, Ρ‡Ρ‚ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСдства.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсиСй соглашСния ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Python (PEP 8)

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

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ Google ΠΏΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° языкС Python. Π§Π°ΡΡ‚ΡŒ вторая: совСты ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ исходного ΠΊΠΎΠ΄Π°

Python Style Rules

Π’ΠΎΡ‡ΠΊΠΈ с запятой
Π”Π»ΠΈΠ½Π° строки
Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Когда Π’Π°Ρˆ тСкст Π½Π΅ помСщаСтся Π² ΠΎΠ΄Π½Ρƒ строку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ скобки для явного объСдинСния строк.

Π§Ρ‚ΠΎ касаСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², располагайтС Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ URL, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° отступ элСмСнта Π² строкС Π²Ρ‹ΡˆΠ΅ (смотритС Ρ€Π°Π·Π΄Π΅Π» ΠΏΡ€ΠΎ отступы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΡŠΡΡΠ½Π΅Π½ΠΈΡ).

Π‘ΠΊΠΎΠ±ΠΊΠΈ

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… (скобки) с Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ return ΠΈΠ»ΠΈ с условной конструкциСй, Ссли Π½Π΅ трСбуСтся ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ пСрСнос строки. (Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π²Ρ‹ΡˆΠ΅). Однако скобки Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ.

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

Π’ случаС, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚Π΅ пСрСнос строки, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ пСрСнСсСнный элСмСнт ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ описано Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎ Π΄Π»ΠΈΠ½Π΅ строк, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ отступ Π² 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π°, Π² этом случаС Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ строкС.

ΠŸΡƒΡΡ‚Ρ‹Π΅ строки
ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹

Никаких ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ скобок.
Π₯ΠΎΡ€ΠΎΡˆΠΎ: spam(ham[1], , [])
ΠŸΠ»ΠΎΡ…ΠΎ: spam( ham[ 1 ], < eggs: 2 >, [ ] )

Никаких ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ запятой, Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой, Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π» послС запятой, Ρ‚ΠΎΡ‡ΠΊΠΈ с запятой ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚ΠΎΡ‚ случай, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ находятся Π² ΠΊΠΎΠ½Ρ†Π΅ строки.

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

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² использовании ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ стиля для модуля, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ строкового коммСнтария.

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

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

ΠœΠΎΠ΄ΡƒΠ»ΠΈ

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² сСбС шаблон Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ подходящий шаблон Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.(НапримСр, Apache 2.0, BSD, LGPL, GPL).

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
ΠšΠ»Π°ΡΡΡ‹

ΠšΠ»Π°ΡΡΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ строку Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½ΠΈΠΆΠ΅ своСго объявлСния. Если Π’Π°Ρˆ класс ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Ρ‚ΡƒΡ‚ ΠΆΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Attributes ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΡΡ‚ΠΈΠ»ΡŽ форматирования, Ρ‡Ρ‚ΠΎ ΠΈ Ρ€Π°Π·Π΄Π΅Π» Args.

Π‘Π»ΠΎΠΊΠΈ ΠΈ ΠΈΠ½Π»Π°ΠΉΠ½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

ПослСднСС мСсто, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ β€” это Ρ…ΠΈΡ‚Ρ€Ρ‹Π΅ мСста Π² ΠΊΠΎΠ΄Π΅. Если Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΈΡ… Π² Π’Π°ΡˆΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄-Ρ€Π΅Π²ΡŒΡŽ, Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… сСйчас. Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ нСсколько строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. НСявныС части Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² ΠΊΠΎΠ½Ρ†Π΅ строки.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° расстоянии ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅ 2-Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΎΡ‚ ΠΊΠΎΠ΄Π°. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ описывайтС ΠΊΠΎΠ΄. ΠŸΡ€Π΅ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π·Π½Π°Π΅Ρ‚ Python (Π° Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ) Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ Π’Ρ‹.

ΠšΠ»Π°ΡΡΡ‹

Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ касаСтся Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… классов.

НаслСдованиС ΠΎΡ‚ класса object Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ свойствам Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ Π’Π°Ρˆ ΠΊΠΎΠ΄ ΠΎΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ нСсовмСстимости с Python 3000. Π’ Π½Π΅ΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ сСмантику ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: __new__, __init__, __delattr__, __getattribute__, __setattr__, __hash__, __repr__, ΠΈ __str__.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ % для форматирования строк, Π΄Π°ΠΆΠ΅ Ссли всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ строками. Π’Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ взвСстС использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° + Π²Π·Π°ΠΌΠ΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° %.

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² + ΠΈ +=, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ†ΠΈΠΊΠ»Π°, Ρ‚.ΠΊ. строки β€” это нСизмСняСмый Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ создаСт Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠΌΡƒ, Π° Π½Π΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΌΡƒ Π·Π°ΠΊΠΎΠ½Ρƒ. ВмСсто этого просто Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ подстроку Π² список ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ join послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ( ΠΈΠ»ΠΈ записывайтС ΠΊΠ°ΠΆΠ΄ΡƒΡŽ подстроку Π² Π±ΡƒΡ„Π΅Ρ€ cStringIO.StringIO)

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ β€œβ€β€ для многострочных строк вмСсто β€œβ€. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‡Ρ‚ΠΎ всСгда Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ явноС объСдинСниС строк, Ρ‚.ΠΊ. многострочныС строки Π½Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ΡΡ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ отступом.

Π€Π°ΠΉΠ»Ρ‹ ΠΈ сокСты

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρƒ for ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ with ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ contextlib.closing()

Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ ΠΊΠΎΠ΄, написанный ΠΏΠΎΠ΄ Python 2.5, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования конструкции with ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° «from __future__ import with_statement«.

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

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

ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ²
ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ

Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ тСкста Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρƒ Вас рапологаСтся условиС. Но это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° всС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ помСщаСтся Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС. Π’ частности, Π’Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ смоТСтС это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с конструкциСй try/except, Ρ‚.ΠΊ. try ΠΈ except Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС, ΠΈ Π’Π°ΠΌ доступно ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½Ρƒ строку Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с конструкциСй if Π‘Π•Π— else.
Π₯ΠΎΡ€ΠΎΡˆΠΎ:

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа
ИмСнованиС

module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_CONSTANT_NAME, global_var_name, instance_var_name, function_parameter_name, local_var_name.

Π‘Ρ‚ΠΈΠ»ΠΈ основаны Π½Π° рСкоммСндациях Π“Π²ΠΈΠ΄ΠΎ:

Π’ΠΈΠΏΠ’Π½Π΅ΡˆΠ½ΠΈΠΉΠ’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ
ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹lower_with_under
ΠœΠΎΠ΄ΡƒΠ»ΠΈlower_with_under_lower_with_under
ΠšΠ»Π°ΡΡΡ‹CapWords_CapWords
Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡCapWords
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈlower_with_under()_lower_with_under()
Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅/ВнутриклассовыС константыCAPS_WITH_UNDER_CAPS_WITH_UNDER
Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅/ВнутриклассовыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅lower_with_under_lower_with_under
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ экзСмпляра классаlower_with_under_lower_with_under (protected) or __lower_with_under (private)
ИмСна ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²lower_with_under()_lower_with_under() (protected) or __lower_with_under() (private)
АргумСнты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ/ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²lower_with_under
Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅lower_with_under

Π”Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ» создавался для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов Π² Π²ΠΈΠ΄Π΅ исполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ части скрипта. Основная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π°Π»ΠΎΠΆΠ΅Π½Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main().
Π’ Python, pychecker, pydoc ΠΈ ΡŽΠ½ΠΈΡ‚ тСстах Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π’Π°Ρˆ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ всСгда ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ if __name__ == ‘__main__’ ΠΏΠ΅Ρ€Π΅Π΄ исполнСниСм, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π’Π°Ρˆ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ исполнСн ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня Π±ΡƒΠ΄Π΅Ρ‚ исполнСн, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны ΠΈ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ создавайтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ» подвСргнСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pychecker ΠΈΠ»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ докумСнтация ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ pydoc.

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ слова

ΠžΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°

Благодарности

ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ спасибо squaii Π·Π° Ρ€Π΅Π²ΡŒΡŽ ΠΈ поиск ошибок.

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

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

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Python-ΠΊΠΎΠ΄Π°

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Python, Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π΅Π³ΠΎ самый извСстный ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ CPython, Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ быстрых расчСтов. Π˜Π½Π°Ρ‡Π΅ говоря, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρƒ Π½Π΅Π³ΠΎ Π½Π΅ такая ΡƒΠΆ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ. А Π²ΠΎΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ читаСмости отличная.

О читаСмости ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΊΠ°ΠΊ Π΅Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ форматирования

ИдСального форматирования ΠΊΠΎΠ΄Π° Π½Π΅ сущСствуСт. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ языка стоит ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ общСпринятыС ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния ΠΊΠΎΠ΄Π°. Π”Π° Ρ‡Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ссли срСди Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π‘++ Π΅Ρ‰Π΅ Π΄ΠΎ сих ΠΏΠΎΡ€ Π²ΠΎΠΉΠ½Ρ‹ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ скобки Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΈΠ»ΠΈ Π½Π΅Ρ‚.
Для python’Π° основными ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ форматирования являСтся Β«C ΡΡ‚ΠΈΠ»ΡŒΒ». НС Ρ€Π΅Π΄ΠΊΠΎ Π² рассматриваСмый язык приходят ΠΈΠ· Π‘-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков, Π° для Π½ΠΈΡ… свойствСнно ΠΏΠΈΡΠ°Ρ‚ΡŒ с символами «)(;».
Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Π½Π΅ СдинствСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° избыточности написания конструкций. ΠŸΠΈΡ‚ΠΎΠ½, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Java, ΠΌΠ΅Π½Π΅Π΅ многословСн ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊ этому ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ большоС количСство Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
Π­Ρ‚ΠΎ Π΄Π²Π΅ основныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΊ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ

Если для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ скорости исполнСния ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, хотя эти ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹, Ρ‚ΠΎ для форматирования тСкста сущСствуСт прям slyle guide β€” это pep8. Π”Π°Π»Π΅Π΅ Π΅Π³ΠΎ Π±ΡƒΠ΄Ρƒ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ «стандарт».
ΠŸΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ стандарт ΠΌΠΎΠΆΠ½ΠΎ здСсь, Π½Π° русском языкС ΠΌΠΎΠΆΠ½ΠΎ здСсь
Pep8 вСсьма ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ ΠΈ позволяСт программисту ΠΏΠΈΡΠ°Ρ‚ΡŒ Π Π•ΠΠ›Π¬ΠΠž Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄.

АвтоматизируСм Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сколько всяких ΠΏΡ€Π°Π²ΠΈΠ» Π² pep8, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΡ‚ΡŒ Π·Π° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π°Π΄ΠΎΠ»Π³ΠΎ. Π’ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π»Π΅Π½ΠΈΠ²ΠΎ, Π΄Π° ΠΈ ΠΏΡ€ΠΈ написании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° сиравно Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ошибки ΠΏΡ€Π°Π²ΠΈΠ». Для этого рассмотрим ΠΊΠ°ΠΊ ΠΆΠ΅ сСбС ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Тизнь.

Π”Π°Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ прСдставлСниС сколько ошибок оформлСния Π² ΠΊΠΎΠ΄Π΅, стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ pep8.
Π£ Π½Π΅Π΅ достаточный список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт рСкурсивно ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ… Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ соотвСтствия стандарту pep8.
Π’Ρ‹Π²ΠΎΠ΄ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ:

По Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ: Π³Π΄Π΅ ошибка ΠΈ Ρ‡Ρ‚ΠΎ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ.

autopep8

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

ПослС выполнСния Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° рСкурсивно ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΠΎ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΠ°ΠΌ ΠΈ Π½Π°Ρ‡Π½Π΅Ρ‚ Π² самих ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ошибки.

autoflake

Π’Π΅ΠΌ самым Π±ΡƒΠ΄ΡƒΡ‚ рСкурсивно ΠΏΠΎΡ‡ΠΈΡ‰Π΅Π½Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

unify

ΠšΡ€Π°ΠΉΠ½ΠΈΠΉ, Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° β€” это строки. ΠšΡ‚ΠΎ-Ρ‚ΠΎ Π»ΡŽΠ±ΠΈΡ‚ ΠΈΡ… ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Ρ… апострофах, ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ…. Π’ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ для этого сущСствуСт Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, которая позволяСт автоматичСски ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² соотвСтствиС β€” unify
ИспользованиС:

Как ΠΈ Π²Π΅Π·Π΄Π΅, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ своС грязноС Π΄Π΅Π»ΠΎ рСкурсивно для Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅.

docformatter

ВсС врСмя Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ самом ΠΊΠΎΠ΄Π΅, Π° ΠΎ коммСнтариях Π΅Ρ‰Π΅ Π½ΠΈ Ρ€Π°Π·Ρƒ Π½Π΅ шло Ρ€Π΅Ρ‡ΠΈ. Настало врСмя β€” docformatter. Π­Ρ‚Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ привСсти ваши docstring ΠΏΠΎ соглашСнию PEP 257. БоглашСниС прСдписываСт ΠΊΠ°ΠΊ слСдуСт ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.
ИспользованиС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π½ΠΈΡ‡ΡƒΡ‚ΡŒ Π½Π΅ слоТнСС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ…:

А всС вмСстС ΠΌΠΎΠΆΠ½ΠΎ?

Π’Ρ‹ΡˆΠ΅ описаны ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΈΡ… запуск ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ bash скрипт ΠΏΠΎΠ΄ магичСским Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ clean.bash ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ. А ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΉΡ‚ΠΈ ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ wrapper Π½Π°Π΄ этими ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ β€” pyformat

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

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

Если читатСлям Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно, Ρ‚ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΎΠΏΠΈΡˆΡƒ ΠΊΠ°ΠΊ Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ошибки Π² ΠΊΠΎΠ΄Π΅.

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

ΠŸΡƒΡ‚Π΅Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ Python. ПишСм Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄

Kenneth Reitz Π½Π° PyCon Π² Австралии (2012)

python ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния ΠΊΠΎΠ΄Π°. 2c147881e70c3c0665e78f4237f327dc. python ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния ΠΊΠΎΠ΄Π° Ρ„ΠΎΡ‚ΠΎ. python ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния ΠΊΠΎΠ΄Π°-2c147881e70c3c0665e78f4237f327dc. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° python ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния ΠΊΠΎΠ΄Π°. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 2c147881e70c3c0665e78f4237f327dc. РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ отступа. Python 3 Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ смСшиваниС табуляции ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² отступах. Код, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Ρ‚Π΅, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ отступов, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ исправлСн Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ отступы Π² Π½Π΅ΠΌ Π±Ρ‹Π»ΠΈ расставлСны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

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

КакиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ? Как ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚? КакиС особСнности ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сгруппированы вмСстС ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹? ΠžΡ‚Π²Π΅Ρ‡Π°Ρ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ вопросы, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

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

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ€Π΅ΡˆΠ°Π΅Ρ‚

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

ΠœΠΎΠ΄ΡƒΠ»ΠΈ

ΠœΠΎΠ΄ΡƒΠ»ΠΈ Π² Python ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· основных слоСв абстракции ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ доступны, ΠΈ, вСроятно, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ для языка. Π£Ρ€ΠΎΠ²Π½ΠΈ абстракции ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° части ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ содСрТащиС ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ стиля руководства, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π΄Π°Π²Π°Ρ‚ΡŒ модулям ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°, содСрТащиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±ΡƒΠΊΠ²Ρ‹ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра ΠΈ ΡƒΠ²Π΅Ρ€ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π’Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ° (.) ΠΈΠ»ΠΈ Π·Π½Π°ΠΊ вопроса (?). Π’Π°ΠΊ ΠΊΠ°ΠΊ имя Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ my.spam.py, Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ. ИмСнованиС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Python ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Python ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ » spam.py » Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ » my «, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ сущСствуСт. БущСствуСт ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ точСчная нотация Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ использована Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… Python.

Помимо Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ имСнования, Π½ΠΈΡ‡Π΅Π³ΠΎ большС Π½Π΅ трСбуСтся Ρ„Π°ΠΉΠ»Ρƒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Ρ‚ΡŒ Python-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ, Π½ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ module.py Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ области видимости. Π›ΡŽΠ±ΠΎΠ΅ объявлСниС Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня Π² Ρ„Π°ΠΉΠ»Π΅ module.py Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹, Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ. ОбъявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов сохранятся Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ модуля.

Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ модуля, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ классы Π±ΡƒΠ΄ΡƒΡ‚ доступны для Π²Ρ‹Π·ΠΎΠ²Π° Ρ‡Π΅Ρ€Π΅Π· пространство ΠΈΠΌΠ΅Π½ модуля β€” Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ понятиС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ особСнно ΠΌΠΎΡ‰Π½ΠΎ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² языкС Python.

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

ИспользованиС from module import func это способ Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. А Ρ‚Π°ΠΊ ΠΆΠ΅ это ΠΌΠ΅Π½Π΅Π΅ Π²Ρ€Π΅Π΄Π½ΠΎ для ΠΊΠΎΠ΄Π° Π½Π΅ΠΆΠ΅Π»ΠΈ » import * «, Ρ‚.ΠΊ. Ρ‚ΡƒΡ‚ ясно Π²ΠΈΠ΄Π½ΠΎ Ρ‡Ρ‚ΠΎ импортируСтся Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, прСимущСство Π±ΠΎΠ»Π΅Π΅ простой записи import module Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² экономии Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ клавиш.

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

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

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