Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ pep8 python

PEP 8 Π² Python – ΠΏΡ€Π°Π²ΠΈΠ»Π° для идСального ΠΊΠΎΠ΄Π°

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ PEP Π² Python?

PEP – это Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΎΡ‚ Python Enterprise Proposal. НаписаниС ΠΊΠΎΠ΄Π° с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ являСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ программирования, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° качСство ΠΊΠΎΠ΄Π°. Π‘Ρ‚ΠΈΠ»ΡŒ кодирования Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Python строго слСдуСт порядку ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ строки.

Адаптивный красивый ΡΡ‚ΠΈΠ»ΡŒ кодирования Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Код становится простым для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ΅Π½ PEP 8?

PEP 8 ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Python, Π½ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½Π°? Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся с этой ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ.

Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Python Π“Π²ΠΈΠ΄ΠΎ Π²Π°Π½ Россум сказал, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ написан Π·Π° нСсколько ΠΌΠΈΠ½ΡƒΡ‚, нСсколько часов ΠΈΠ»ΠΈ Ρ†Π΅Π»Ρ‹ΠΉ дСнь, Π½ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ напишСм ΠΊΠΎΠ΄, ΠΌΡ‹ большС Π½ΠΈΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π΅ пСрСписываСм. Но ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ снова ΠΈ снова.

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

ΠœΡ‹ опишСм нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ написанию эффСктивного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

УсловныС обозначСния

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

УсловныС обозначСния Π² Python Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Ρ‹, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ соглашСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ обозначСния.

Одна строчная Π±ΡƒΠΊΠ²Π°

Одна заглавная Π±ΡƒΠΊΠ²Π°

Π‘Ρ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ с ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ

Π’Π•Π Π₯ΠΠ˜Π™ Π Π•Π“Π˜Π‘Π’Π  Π‘ ΠŸΠžΠ”Π§Π•Π ΠšΠ˜Π’ΠΠΠ˜Π•Πœ

Π—Π°Π³Π»Π°Π²Π½Ρ‹Π΅ слова(ΠΈΠ»ΠΈ CamelCase)

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈ использовании сокращСний Π² CapWords Π΄Π΅Π»Π°ΠΉΡ‚Π΅ всС Π±ΡƒΠΊΠ²Ρ‹ сокращСния Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, HTTPServerError Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ HttpServerError.

Π‘Ρ‚ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· распространСнных стилСй имСнования Π² Python. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

ВипБоглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
Π€ΡƒΠ½ΠΊΡ†ΠΈΡΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слова Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ слова ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.myfunction, my_function
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°ΡΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строчныС Π±ΡƒΠΊΠ²Ρ‹, слова ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ слова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ.a, var, variable_name
ΠšΠ»Π°ΡΡΠŸΠ΅Ρ€Π²Π°Ρ Π±ΡƒΠΊΠ²Π° названия класса Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ camel case. НС раздСляйтС слова ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.MyClass, Form, Model
ΠœΠ΅Ρ‚ΠΎΠ΄ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строчныС Π±ΡƒΠΊΠ²Ρ‹, слова ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ слова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ.class_method, method
ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π³Π»Π°Π²Π½Ρ‹Ρ… Π±ΡƒΠΊΠ², слов ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… слов для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ удобочитаСмости.MYCONSTANT, CONSTANT, MY_CONSTANT
ΠœΠΎΠ΄ΡƒΠ»ΡŒΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строчныС Π±ΡƒΠΊΠ²Ρ‹, слова ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ слова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ.Module_name.py, module.py
ΠŸΠ°ΠΊΠ΅Ρ‚ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строчныС Π±ΡƒΠΊΠ²Ρ‹, слова ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ слова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ. НС раздСляйтС слова ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.package, mypackage

Π’Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‰ΠΈΠ΅ соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Python. Для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ имя.

ΠœΠ°ΠΊΠ΅Ρ‚ ΠΊΠΎΠ΄Π°

ΠœΠ°ΠΊΠ΅Ρ‚ ΠΊΠΎΠ΄Π° опрСдСляСт, насколько ΠΊΠΎΠ΄ читаСтся. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ читаСмости ΠΊΠΎΠ΄Π°.

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

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, отступ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π² Python. ΠžΡ‚ΡΡ‚ΡƒΠΏΡ‹ – ваТная Ρ‡Π°ΡΡ‚ΡŒ языка программирования Python, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ строк ΠΊΠΎΠ΄Π°. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° для отступа. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ с отступом Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½, Ссли условиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if истинно. Π­Ρ‚ΠΎΡ‚ отступ опрСдСляСт Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΈ сообщаСт Π½Π°ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π΅ условия.

Π’ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΏΡ€ΠΎΠ±Π΅Π»Π°

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ отступ, Π½ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Python 2 позволяСт ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ табуляции ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Π½ΠΎ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Python 3.

ΠžΡ‚ΡΡ‚ΡƒΠΏ послС Ρ€Π°Π·Ρ€Ρ‹Π²Π° строки

Для продолТСния строки Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ отступ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π»ΠΈΠ½Π° строки Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π»Π° 79 символов. Π­Ρ‚ΠΎ обСспСчиваСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ опрСдСлСния ΠΌΠ΅ΠΆΠ΄Ρƒ двумя строками ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ΄Π½ΠΎΠΉ строкой ΠΊΠΎΠ΄Π°, которая Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ Π΄Π²Π΅ строки.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру.

ИспользованиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ строки

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

Π”ΠΎΠ»ΠΆΠ½Π° Π»ΠΈ линия Ρ€Π°Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΄ΠΎ ΠΈΠ»ΠΈ послС Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°?

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

Как ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΎΠ½ каТСтся довольно Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ для чтСния. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру.

Python позволяСт Π½Π°ΠΌ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ строку Π΄ΠΎ ΠΈΠ»ΠΈ послС Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Ссли соглашСниС согласовано локально.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°

ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ строкС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ написан Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ сразу послС любого коммСнтария модуля. РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Π΅Π΄Π΅Ρ‚ сСбя Π»ΡƒΡ‡ΡˆΠ΅.

Однако ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ явный ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ вмСсто Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со слоТными ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ.

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

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

Π’Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹ΠΉ способ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°.

Π—Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ скобки

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ строки Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобок, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ продолТСния строки. PEP 8 позволяСт Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки Π² ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌΡ‹Ρ… продолТСниях строк. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Оба ΠΌΠ΅Ρ‚ΠΎΠ΄Π° подходят для использования, Π½ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, поэтому Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ любой ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅.

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

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

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

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

PEP 8 прСдоставляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° для записи Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большС Π°Π±Π·Π°Ρ†Π° для тСхничСского ΠΊΠΎΠ΄Π°.

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

ВстроСнныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для объяснСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π°. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ быстро ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ написали ΠΈΠΌΠ΅Π½Π½ΠΎ эту строку ΠΊΠΎΠ΄Π°. PEP 8 опрСдСляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° для встроСнных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ встроСнных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

Иногда ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ встроСнный ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ….

ВстроСнныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹, Π½ΠΎ Π±Π»ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

ИзлишнСС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²

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

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

Как ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Π² Python Π΅ΡΡ‚ΡŒ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для выполнСния Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдлоТСния PEP 8 ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ согласованности.

ΠœΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ эквивалСнтности == для сравнСния логичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π˜ΡΡ‚ΠΈΠ½Ρƒ ΠΈΠ»ΠΈ Π›ΠΎΠΆΡŒ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ прост, поэтому PEP 8 поощряСт Π΅Π³ΠΎ.

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ список пустым, Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ списка, поэтому Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

Однако, Ссли Π΅ΡΡ‚ΡŒ пустой список, Π½Π°Π±ΠΎΡ€ ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ Π±ΠΎΠ»Π΅Π΅ умСстСн; Π²ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ PEP 8 поощряСт это.

Π•ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈ пСрСмСнная ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ x Π½Π΅ Ρ€Π°Π²Π½ΠΎ None, ΠΊΠ°ΠΊ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ x ΠΊΠ°ΠΊ None ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if, основанный Π½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅.

Оба Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π²Π΅Ρ€Π½Ρ‹, Π½ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ прост, поэтому PEP 8 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ.

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

ΠœΡ‹ обсудили Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ PEP 8, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ устранял Π΄Π²ΡƒΡΠΌΡ‹ΡΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π» Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°ΡŽΡ‚ ΠΊΠΎΠ΄, особСнно ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΊΠΎΠ΄ΠΎΠΌ с ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ сотрудниками ΠΈΠ»ΠΈ соавторами. ΠœΡ‹ обсудили, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ PEP ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, совмСстимый с PEP 8. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ PEP 8, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ pep8.org.

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

Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ описываСт соглашСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для языка python, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π²Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π² состав python.

PEP 8 создан Π½Π° основС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ Π“ΡƒΠΈΠ΄ΠΎ Π²Π°Π½ Россума с добавлСниями ΠΎΡ‚ Π‘Π°Ρ€Ρ€ΠΈ. Если Π³Π΄Π΅-Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π» ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ ΡΡ‚ΠΈΠ»ΡŒ Π“ΡƒΠΈΠ΄ΠΎ. И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, этот PEP ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌ (фактичСски, ΠΎΠ½, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½).

ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ идСя Π“ΡƒΠΈΠ΄ΠΎ Ρ‚Π°ΠΊΠΎΠ²Π°: ΠΊΠΎΠ΄ читаСтся Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС Ρ€Π°Π·, Ρ‡Π΅ΠΌ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ. БобствСнно, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΎ стилС написания ΠΊΠΎΠ΄Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ согласованным ΠΌΠ΅ΠΆΠ΄Ρƒ большим числом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π’ ΠΈΠ΄Π΅Π°Π»Π΅, вСсь ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ написан Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ стилС, ΠΈ любой смоТСт Π»Π΅Π³ΠΊΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ.

Π­Ρ‚ΠΎ руководство ΠΎ согласованности ΠΈ СдинствС. Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ с этим руководством ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Π°. Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅Ρ‰Π΅ Π²Π°ΠΆΠ½Π΅Π΅. А ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” самоС Π²Π°ΠΆΠ½ΠΎΠ΅. Но Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° это руководство Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ, ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠΉΡ‚ΠΈ ΠΎΡ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ. Когда Π²Ρ‹ ΡΠΎΠΌΠ½Π΅Π²Π°Π΅Ρ‚Π΅ΡΡŒ, просто посмотритС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ Ρ€Π΅ΡˆΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΎΠΉ выглядит Π»ΡƒΡ‡ΡˆΠ΅.

Π”Π²Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°:

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

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠ΄Π°

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π° Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ отступа.

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

Π—Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅/ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅/Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки Π² многострочных конструкциях ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π½Π΅ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹ΠΌ символом послСднСй строки списка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π»ΠΈΠ±ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ символом строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ:

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

Вабуляция Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ΄Π°, написанного с отступами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ табуляции.

Python 3 Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ смСшиваниС табуляции ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² отступах.

Python 2 пытаСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ Π² ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹.

Максимальная Π΄Π»ΠΈΠ½Π° строки

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡŒΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ строки максимум 79 символами.

Для Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² тСкста с мСньшими структурными ограничСниями (строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ), Π΄Π»ΠΈΠ½Ρƒ строки слСдуСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ 72 символами.

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

НСкоторыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ строки. Для ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ прСимущСствСнно этой Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΊ согласию ΠΏΠΎ этому вопросу, Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ строки с 80 Π΄ΠΎ 100 символов (фактичСски увСличивая ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ Π΄ΠΎ 99 символов), ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ строки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ всС Π΅Ρ‰Π΅ Π±ΡƒΠ΄ΡƒΡ‚ 72 символа.

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Python консСрвативна ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ограничСния Π΄Π»ΠΈΠ½Ρ‹ строки Π² 79 символов (Π° строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ/ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² 72).

ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ способ пСрСноса Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк являСтся использованиС ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠΉ строк Python Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ…, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок. Π”Π»ΠΈΠ½Π½Ρ‹Π΅ строки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ Π½Π° нСсколько строк, ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚Ρ‹Π΅ Π² скобки. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ использования ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ для продолТСния строки.

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ косая Ρ‡Π΅Ρ€Ρ‚Π° всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. НапримСр, длинная конструкция with Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСявныС продолТСния, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ обратная косая Ρ‡Π΅Ρ€Ρ‚Π° являСтся ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ:

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ отступы для пСрСнСсённой строки. ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пСрСнос строки послС логичСского ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ. НапримСр:

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

ΠžΡ‚Π΄Π΅Π»ΡΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня ΠΈ опрСдСлСния классов двумя пустыми строками.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ класса Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ пустой строкой.

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ пустыС строки Π² функциях, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ логичСскиС Ρ€Π°Π·Π΄Π΅Π»Ρ‹.

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

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° исходного Ρ„Π°ΠΉΠ»Π°

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Python Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ UTF-8 (ASCII Π² Python 2).

Π€Π°ΠΉΠ»Ρ‹ Π² ASCII (Python 2) ΠΈΠ»ΠΈ UTF-8 (Python 3) Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ объявлСния ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Начиная с вСрсии python 3.0 Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ дСйствуСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ соглашСниС: всС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ обязаны ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ASCII символы, ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ английскиС слова Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ сокращСния ΠΈΠ»ΠΈ нСанглийскиС тСхничСскиС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, строки ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ лишь ASCII символы. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚: (Π°) test case, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½Π΅-ASCII особСнности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ (Π±) ΠΈΠΌΠ΅Π½Π° Π°Π²Ρ‚ΠΎΡ€ΠΎΠ². Авторы, Ρ‡ΡŒΠΈ ΠΈΠΌΠ΅Π½Π° основаны Π½Π΅ Π½Π° латинском Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои ΠΈΠΌΠ΅Π½Π° Π² Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Ρƒ.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ для ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это соглашСниС.

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

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

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

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

Π˜ΠΌΠΏΠΎΡ€Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ сгруппированы Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС:

ВставляйтС ΠΏΡƒΡΡ‚ΡƒΡŽ строку ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ².

Π£ΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ спСцификации __all__ послС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ².

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

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

Π’ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ слоТной структуры ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹.

НСявныС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹, ΠΈ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Π² Python 3.

Когда Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ класс ΠΈΠ· модуля, Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Если Ρ‚Π°ΠΊΠΎΠ΅ написаниС Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΠ΅Π½, Ρ‚ΠΎΠ³Π΄Π° ΠΏΠΈΡˆΠΈΡ‚Π΅:

И ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ «myclass.MyClass» ΠΈ «foo.bar.yourclass.YourClass».

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² (from import *) слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ нСясным Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² глобальном пространствС ΠΈΠΌΡ‘Π½, Ρ‡Ρ‚ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСдства. БущСствуСт ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования шаблона ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ интСрфСйса ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ общСствСнного API (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пСрСписав Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π° чистом Python Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ аксСлСратора (ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ€Π°Π½Π΅Π΅ извСстно, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны).

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

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ситуациях:

НСпосрСдствСнно Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ…, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок.

НСпосрСдствСнно ΠΏΠ΅Ρ€Π΅Π΄ запятой, Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой ΠΈΠ»ΠΈ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ:

Π‘Ρ€Π°Π·Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкой, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ начинаСтся список Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π‘Ρ€Π°Π·Ρƒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкой, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт индСкс ΠΈΠ»ΠΈ срСз:

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

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² с самым Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свои собствСнныС суТдСния, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°, ΠΈ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΏΠΎ ΠΎΠ±Π΅ стороны Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π²ΠΎΠΊΡ€ΡƒΠ³ Π·Π½Π°ΠΊΠ° =, Ссли ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обозначСния ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ составныС инструкции (нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС).

Иногда ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»ΠΎΠ² while, for ΠΈΠ»ΠΈ Π²Π΅Ρ‚ΠΊΡƒ if Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС, Ссли ΠΊΠΎΠΌΠ°Π½Π΄Π° короткая, Π½ΠΎ Ссли ΠΊΠΎΠΌΠ°Π½Π΄ нСсколько, Π½ΠΈΠΊΠΎΠ³Π΄Π° Ρ‚Π°ΠΊ Π½Π΅ ΠΏΠΈΡˆΠΈΡ‚Π΅. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк!

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

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

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

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

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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ говорят Π½Π° английском языкС, поТалуйста, ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π° английском, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π½Π° 120%, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ люди, Π½Π΅ Π·Π½Π°ΡŽΡ‰ΠΈΠ΅ вашСго Ρ€ΠΎΠ΄Π½ΠΎΠ³ΠΎ языка.

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

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

Абзацы Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ строкой, состоящСй ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа #.

«Π’строчныС» ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

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

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

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

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹:

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

ΠŸΠΈΡˆΠΈΡ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для всСх ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, классов, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ для ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ послС строки с def.

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

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

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Subversion, CVS ΠΈΠ»ΠΈ RCS Π² Π²Π°ΡˆΠΈΡ… исходных ΠΊΠΎΠ΄Π°Ρ…, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ВставляйтС эти строки послС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ модуля ΠΏΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ отдСляйтС ΠΈΡ… пустыми строками ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎ ΠΈ послС.

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

БоглашСния ΠΏΠΎ имСнованию ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² python Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚ΡƒΠΌΠ°Π½Π½Ρ‹, поэтому ΠΈΡ… список Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΌ β€” Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½ΠΈΠΆΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌ список Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. НовыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ написаны согласно этим стандартам, Π½ΠΎ Ссли Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ эти ΠΏΡ€Π°Π²ΠΈΠ»Π° Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‚ΡΡ, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ с Π½Π΅ΠΉ стилС.

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ

ИмСна, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΈΠ΄Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ общСствСнного API Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ конвСнциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ использованиС, Π° Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

ОписаниС: Π‘Ρ‚ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½

БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… стилСй. ПомоТСм Π²Π°ΠΌ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΡΡ‚ΠΈΠ»ΡŒ имСнования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ стили:

Π•Ρ‰Ρ‘ сущСствуСт ΡΡ‚ΠΈΠ»ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΠΌΠ΅Π½Π°, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ логичСской Π³Ρ€ΡƒΠΏΠΏΠ΅, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ прСфикс. Π­Ρ‚ΠΎΡ‚ ΡΡ‚ΠΈΠ»ΡŒ Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² python, Π½ΠΎ ΠΌΡ‹ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ Π΅Π³ΠΎ для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹. НапримСр, функция os.stat() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, ΠΈΠΌΠ΅Π½Π° Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ΄ st_mode, st_size, st_mtime ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. (Π’Π°ΠΊ сдСлано, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ соотвСтствиС этих ΠΏΠΎΠ»Π΅ΠΉ структурС систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² POSIX, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ с Π½Π΅ΠΉ программистам).

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ X11 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прСфикс Π₯ для всСх public-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ python этот ΡΡ‚ΠΈΠ»ΡŒ считаСтся излишним, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ полями ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² стоит имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ стоит имя модуля.

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

_single_leading_underscore: слабый ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ имя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Π½ΡƒΠΆΠ΄. НапримСр, from M import * Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ‡ΡŒΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с символа подчСркивания.

single_trailing_underscore_: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ соглашСнию для избСТания ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами языка python, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

__double_leading_underscore: измСняСт имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° класса, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² классС FooBar ΠΏΠΎΠ»Π΅ __boo становится _FooBar__boo.

__double_leading_and_trailing_underscore__ (Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠΌΠ΅Π½ΠΈ): магичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² пространствах ΠΈΠΌΠ΅Π½, управляСмых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. НапримСр, __init__, __import__ ΠΈΠ»ΠΈ __file__. НС ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ написано Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

ΠŸΡ€Π΅Π΄ΠΏΠΈΡΠ°Π½ΠΈΡ: соглашСния ΠΏΠΎ имСнованию

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

Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ символы l (малСнькая латинская Π±ΡƒΠΊΠ²Π° «эль»), O (заглавная латинская Π±ΡƒΠΊΠ²Π° Β«ΠΎΒ») ΠΈΠ»ΠΈ I (заглавная латинская Π±ΡƒΠΊΠ²Π° Β«Π°ΠΉΒ») ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠ±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡˆΡ€ΠΈΡ„Ρ‚Π°Ρ… эти символы Π½Π΅ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΌΡ‹ ΠΎΡ‚ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΈ нуля. Если ΠΎΡ‡Π΅Π½ΡŒ Π½ΡƒΠΆΠ½ΠΎ l, ΠΏΠΈΡˆΠΈΡ‚Π΅ вмСсто Π½Π΅Ρ‘ Π·Π°Π³Π»Π°Π²Π½ΡƒΡŽ L.

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

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

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

Когда ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, написанный Π½Π° Π‘ ΠΈΠ»ΠΈ C++, ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ python-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (содСрТащий интСрфСйс высокого уровня), Π‘/Π‘++ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ начинаСтся с символа подчСркивания, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, _socket.

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

ИмСна классов Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ соглашСнию CapWords.

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

ИмСна ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

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

ИмСна Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π‘ΡƒΠ΄Π΅ΠΌ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля. Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΡƒΠΉΡ‚Π΅ΡΡŒ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ соглашСниями, Ρ‡Ρ‚ΠΎ ΠΈ для ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ДобавляйтС Π² ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ написаны Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… использовали с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ from M import *, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ __all__, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ экспортированиС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Или ΠΆΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ староС соглашСниС, добавляя ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ‚Π°ΠΊΠΈΡ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄ΠΈΠ½ символ подчСркивания (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля).

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

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

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

АргумСнты Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ self Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ cls Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса.

Если имя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом python, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ† ΠΈΠΌΠ΅Π½ΠΈ символ подчСркивания, Ρ‡Π΅ΠΌ ΠΈΡΠΊΠ°Π·ΠΈΡ‚ΡŒ написаниС слова ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, class_ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ clss. (Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ синоним).

ИмСна ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… экзСмпляров классов

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄ΠΈΠ½ символ подчёркивания ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ для Π½Π΅ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ с подклассами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄Π²Π° Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… подчСркивания.

Python искаТаСт эти ΠΈΠΌΠ΅Π½Π°: Ссли класс Foo ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ __a, ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ доступСн ΠΊΠ°ΠΊ Foo.__a. (Настойчивый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ, Π²Ρ‹Π·Π²Π°Π² Foo._Foo__a.) Π’ΠΎΠΎΠ±Ρ‰Π΅, Π΄Π²Π° Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… подчСркивания Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ классов, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для наслСдования.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ разногласия ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ использования __ ΠΈΠΌΠ΅Π½Π° (см. Π½ΠΈΠΆΠ΅).

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹

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

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ наслСдования

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

ΠœΡ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Π² python Ρ‚Π°ΠΊΠΈΡ… Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚.

Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² классов ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌΡƒ API подклассов (Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках ΠΎΠ½ΠΈ часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ protected). НСкоторыС классы ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ Π½ΠΈΡ… наслСдовали Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса. Когда Π²Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΎΠΉ класс, Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΈ явно ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ API подклассов, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ сформулируСм Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ:

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠΌΠ΅Π½ΠΈ символа подчСркивания.

Если имя ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом языка, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΊΠΎΠ½Π΅Ρ† ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ΄ΠΈΠ½ символ подчСркивания. Π­Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Π΅ΠΌ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ искаТСниС написания (ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρƒ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΅ΡΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ класс, ΠΈ особСнно ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса (class method) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ имя cls).

НазовитС простыС ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ понятными ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ Π½Π΅ ΠΏΠΈΡˆΠΈΡ‚Π΅ слоТныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа ΠΈ измСнСния (accessor/mutator, get/set, β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².) ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² python ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΌ, Ссли потрСбуСтся. Π’ этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ свойства (properties), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π·Π° синтаксисом доступа ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1: Бвойства (properties) Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² классах Π½ΠΎΠ²ΠΎΠ³ΠΎ стиля (Π² Python 3 всС классы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2: ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов, связанным с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ; Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π²ΠΏΠΎΠ»Π½Π΅ допустимы.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 3: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° записи с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² создаСтся Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ доступ происходит (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) быстро.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1: Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹: Ссли подкласс Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ имя класса ΠΈ имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Ρ‚ΠΎ вновь Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΠ΅Π½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2: ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ измСнСния ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с __getattr__(), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ Π»Π΅Π³ΠΊΠΎ рСализуСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 3: НС всСм нравится этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, поэтому ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ компромисса ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈΠΌΠ΅Π½ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ доступа ΠΊ этим Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ.

ΠžΠ±Ρ‰ΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ написан Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ языка (PyPy, Jython, IronPython, Pyrex, Psyco ΠΈ ΠΏΡ€.).

НапримСр, Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² CPython ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк Π² выраТСниях Ρ‚ΠΈΠΏΠ° a+=b ΠΈΠ»ΠΈ a=a+b. Π’Π°ΠΊΠΈΠ΅ инструкции Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π² Jython. Π’ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния частях ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ».join() β€” Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ склСиваниС строк Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя нСзависимо ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ python.

БравнСния с None Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² is ΠΈΠ»ΠΈ is not, Π° Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ ΠΏΠΈΡˆΠΈΡ‚Π΅ if x, Ссли ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ if x is not None β€” Ссли, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€ΠΈ тСстировании такая пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ None, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ False!

ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сравнСния, Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС 6 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сравнСния (__eq__, __ne__, __lt__, __le__, __gt__, __ge__), Ρ‡Π΅ΠΌ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ программисты Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π²ΠΈΠ΄ сравнСния.

Для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ усилий ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ functools.total_ordering() для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ def, Π° Π½Π΅ присваиваниС лямбда-выраТСния ΠΊ ΠΈΠΌΠ΅Π½ΠΈ.

НаслСдуйтС свой класс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚ Exception, Π° Π½Π΅ ΠΎΡ‚ BaseException. ΠŸΡ€ΡΠΌΠΎΠ΅ наслСдованиС ΠΎΡ‚ BaseException Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ слСдуСт ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’ Python 3, «raise X from Y» слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для указания явной Π·Π°ΠΌΠ΅Π½Ρ‹ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Когда Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ замСняСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (использованиС «raise X» Π² Python 2 ΠΈΠ»ΠΈ «raise X from None» Π² Python 3.3+), прослСдитС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ информация ΠΏΠ΅Ρ€Π΅Π΄Π°Π»Π°ΡΡŒ Π² Π½ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ сохранСниС ΠΈΠΌΠ΅Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ KeyError Π² AttributeError ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ тСкста исходного ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π½ΠΎΠ²ΠΎΠΌ).

Когда Π²Ρ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΏΠΈΡˆΠΈΡ‚Π΅ raise ValueError(‘message’) вмСсто старого синтаксиса raise ValueError, message.

Бтарая Ρ„ΠΎΡ€ΠΌΠ° записи Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π° Π² python 3.

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

Когда ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ошибки вмСсто простого выраТСния except:.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΠΈΡˆΠΈΡ‚Π΅ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ написаниС «except:» Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ ΠΈ SystemExit, ΠΈ KeyboardInterrupt, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слоТнСС Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ control+C. Если Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ всС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΏΠΈΡˆΠΈΡ‚Π΅ «except Exception:».

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ являСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ использования «except:», ΠΊΡ€ΠΎΠΌΠ΅ Π΄Π²ΡƒΡ… случаСв:

ΠŸΡ€ΠΈ связывании ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ явный синтаксис привязки, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² Python 2.6:

Π­Ρ‚ΠΎ СдинствСнный синтаксис, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π² Python 3, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ нСоднозначности, связанных с Π±ΠΎΠ»Π΅Π΅ старым синтаксисом Π½Π° основС запятой.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π΅ ошибок ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ²Π½ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π² Python 3.3, вмСсто Π°Π½Π°Π»ΠΈΠ·Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ errno.

ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ try. except ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³Ρ‡Π΅ ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ошибки. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, это позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ замаскированных ошибок.

Когда рСсурс являСтся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π° участкС ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ with для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ послС выполнСния ΠΎΠ½ Π±Ρ‹Π» ΠΎΡ‡ΠΈΡ‰Π΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎ.

ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ контСкста слСдуСт Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ освобоТдСниС рСсурсов. НапримСр:

ПослСдний ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π΅ Π΄Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ __enter__ ΠΈ __exit__ Π΄Π΅Π»Π°ΡŽΡ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ закрытия соСдинСния послС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π‘Ρ‹Ρ‚ΡŒ явным Π²Π°ΠΆΠ½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ строковыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ вмСсто модуля string β€” ΠΎΠ½ΠΈ всСгда быстрСС ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ API для unicode-строк. МоТно ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ этого ΠΏΡ€Π°Π²ΠΈΠ»Π°, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с вСрсиями python младшС 2.0.

Π’ Python 3 ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строковыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

ΠŸΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ».startswith() ΠΈ ».endswith() вмСсто ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ срСзов строк для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ суффиксов ΠΈΠ»ΠΈ прСфиксов.

startswith() ΠΈ endswith() выглядят Ρ‡ΠΈΡ‰Π΅ ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ мСньшС ошибок. НапримСр:

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ isinstance(), Π° Π½Π΅ прямым сравнСниСм Ρ‚ΠΈΠΏΠΎΠ²:

Когда Π²Ρ‹ провСряСтС, являСтся Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строкой, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ строка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ unicode-строкой. Π’ python 2 Ρƒ str ΠΈ unicode Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Python 3, unicode ΠΈ basestring большС Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ (Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ str) ΠΈ bytes большС Π½Π΅ являСтся своСго Ρ€ΠΎΠ΄Π° строкой (это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… чисСл).

Для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ (строк, списков, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ пустая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ false:

НС ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ строковыми константами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² ΠΊΠΎΠ½Ρ†Π΅ β€” ΠΎΠ½ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹, Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ (Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈ reindent.py) ΠΎΠ±Ρ€Π΅Π·Π°ΡŽΡ‚ ΠΈΡ….

НС сравнивайтС логичСскиС Ρ‚ΠΈΠΏΡ‹ с True ΠΈ False с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ==:

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

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

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