Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python

БоглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… Π² Python

Как Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΊΠΎΠ΄Π΅

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

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

ОписаниС стилСй имСнования Π² языках программирования:

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

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ стили имСнования ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ:

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° X11 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ X для всСх своих ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ Python этот ΡΡ‚ΠΈΠ»ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ считаСтся Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с прСфикса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ΠΈΠΌΠ΅Π½ΠΈ модуля.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ с использованиСм Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠΉ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒΡΡ с Π»ΡŽΠ±Ρ‹ΠΌ соглашСниСм ΠΏΠΎ ΡΠ»ΡƒΡ‡Π°ΡŽ):

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

single_trailing_underscore_ : ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ соглашСнию, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами Python, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

__double_leading_underscore : измСняСт имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° класса (Π²Π½ΡƒΡ‚Ρ€ΠΈ класса FooBar __boo становится _FooBar__boo ).

БоглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… Π² Python.

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

Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ символы l (строчная Π±ΡƒΠΊΠ²Π° L ), O (заглавная Π±ΡƒΠΊΠ²Π° o ) ΠΈΠ»ΠΈ I (заглавная Π±ΡƒΠΊΠ²Π° i ) Π² качСствС ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа.

Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ASCII:

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ASCII совмСстимы, ΠΊΠ°ΠΊ описано Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π² PEP 3131.

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

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

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

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

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

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

ИмСна Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

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

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ классами, здСсь примСняСтся соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… классов. Однако Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ суффикс Error Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (Ссли ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ являСтся ошибкой).

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

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

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

ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ строчными, слова Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ.

ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ соглашСнию, Ρ‡Ρ‚ΠΎ ΠΈ ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

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

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

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

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

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

ΠŸΡ€ΠΈ нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° имСнования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: строчныС Π±ΡƒΠΊΠ²Ρ‹ со словами, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄Π½ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… экзСмпляра.

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

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

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

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

ВсСгда Ρ€Π΅ΡˆΠ°ΠΉΡ‚Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса ΠΈ Π΅Π³ΠΎ экзСмпляра («Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ класса») Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ. Π’ случаС сомнСний, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ. ΠŸΡ€ΠΎΡ‰Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ общСдоступным ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ общСдоступный Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ.

ΠœΡ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π½Π΅ являСтся Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π² Python.

ИмСя это Π² Π²ΠΈΠ΄Ρƒ, Π²ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ руководящиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹:

ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠΉ.

Если имя вашСго общСдоступного Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° вступаСт Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ΅ с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ символ подчСркивания. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ искаТСнного написания. (Однако, нСсмотря Π½Π° это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, cls являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ написаниСм для любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠ°ΠΊ извСстно, являСтся классом, особСнно ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса.)

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1: Π‘ΠΌ. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ Π²Ρ‹ΡˆΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1: Бвойства properties Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с классами Π½ΠΎΠ²ΠΎΠ³ΠΎ стиля.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2: Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ повСдСния, хотя, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 3: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования Π² свойствах Π΄ΠΎΡ€ΠΎΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ нотация Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° заставляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ класса Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ доступ (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) дСшСв.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1: ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² искаТСнном ΠΈΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ простоС имя класса, поэтому, Ссли подкласс Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ имя класса ΠΈ имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅Π½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 3: Π½Π΅ всСм нравится искаТСниС ΠΈΠΌΠ΅Π½ΠΈ. ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΡƒΡ€Π°Π²Π½ΠΎΠ²Π΅ΡΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ случайных ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ с ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ использованиСм ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ программистами.

ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ интСрфСйсы

Π›ΡŽΠ±Ρ‹Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ общСдоступным интСрфСйсам. БоотвСтствСнно, Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ интСрфСйсы.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ интСрфСйсы ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ общСдоступными, Ссли Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ явно Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ. Π’Π°ΠΊΠΈΠ΅ интСрфСйсы Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости. ВсС Π½Π΅Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ интСрфСйсы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ.

Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ установкС __all__ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ интСрфСйсы (ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, классы, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΠΌΠ΅Ρ‚ΡŒ прСфикс с СдинствСнным Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Ρ‚Π°ΠΊΠΆΠ΅ считаСтся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ, Ссли содСрТащСС пространство ΠΈΠΌΠ΅Π½ (ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ»ΠΈ класс) считаСтся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ.

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Python β€” ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Python β€” это ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ для ссылки Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ содСрТит мСсто Π² памяти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Python ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ΠŸΡ€Π°Π²ΠΈΠ»Π° для опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Python

Π•ΡΡ‚ΡŒ нСсколько ΠΏΡ€Π°Π²ΠΈΠ» для опрСдСлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ python.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ допустимых ΠΈΠΌΠ΅Π½

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ нСдопустимых ΠΈΠΌΠ΅Π½

Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Python?

Python β€” это язык с динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈ Π΅Π΅ объявлСнии. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ опрСдСляСтся Π·Π½Π°ΠΊΠΎΠΌ равСнства. ЛСвая Ρ‡Π°ΡΡ‚ΡŒ содСрТит имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° правая Ρ‡Π°ΡΡ‚ΡŒ β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² объявлСния.

Python Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ мноТСствСнноС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ мноТСствСнноС присваиваниС.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ списку ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’ этом случаС количСство элСмСнтов Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ количСству ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли количСство ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ количСство элСмСнтов Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ Ρ€Π°Π²Π½Ρ‹.

Как вывСсти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅?

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Python print() для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° значСния. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ².

Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π€ΠΎΡ‚ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹

Если Π²Ρ‹ посмотритС Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… случайны. Они Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ значСния. Π•ΡΡ‚ΡŒ нСсколько Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ.

ΠžΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°.

Как Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ?

ΠœΡ‹ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Python. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ type() для опрСдСлСния Ρ‚ΠΈΠΏΠ°.

КакиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹?

Π’ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Python β€” это Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π΅Π΅ значСния. Python β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования. ВсС Π² Python β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ всСгда ΡΠ²Π»ΡΡŽΡ‚ΡΡ экзСмпляром класса.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Python

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости опрСдСляСт ΠΎΠ±Π»Π°ΡΡ‚ΡŒ доступности ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Python ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π²Π΅ области дСйствия:

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ

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

Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π€ΠΎΡ‚ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса. ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости β€” это класс для этого сцСнария.

Π’Ρ‹Π²ΠΎΠ΄: NameError: name ‘class_foo_var’ is not defined

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ

Когда пСрСмСнная Π½Π΅ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ класса, ΠΎΠ½Π° доступна ΠΈΠ· любой Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ if-else, for loop, while loop, try-except ΠΈ Ρ‚. Π”., Π”ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄, ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся Π² этом Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Var_else Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° else Π½Π΅ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Π±Π»ΠΎΠΊΠΎΠΌ try-except.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° try ΠΈ except, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π΅ Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅

БтатичСская

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса, доступны ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ класса. Π˜Ρ… Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ статичСскими, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ классу.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ доступны ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. Однако рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСский доступ ΠΊ классу.

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ globals() ΠΈ locals()

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² любом мСстС ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, доступна Π»ΠΈ пСрСмСнная Π² этом мСстС ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π­Ρ‚ΠΎ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python.

Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π€ΠΎΡ‚ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python

global ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Но ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ это ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово global Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ попытаСмся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° проста. Когда ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания для измСнСния значСния Β«nameΒ», ΠΎΠ½ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ локальная пСрСмСнная. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, доступ ΠΊ Π½Π΅ΠΌΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ print() сбрасываСт, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово global, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

nonlocal ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово nonlocal ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для доступа ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π²Π½Π΅ области дСйствия Π±Π»ΠΎΠΊΠ°. Π­Ρ‚ΠΎ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… функциях для доступа, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ снаруТи. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ всСгда ищутся Π² блиТайшСй ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ области, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ….

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

Как Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Python

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ β€” это имСнованная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ Π΄Π°Π»ΠΈ имя области, появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ хранятся.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π΄Π°Π½Π½Ρ‹Ρ… Π² Python являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΠ»ΠΈ класса. Когда, Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, появляСтся Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ выдСляСт для Π½Π΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (число, строка ΠΈ Ρ‚.Π΄.). ПослС этого Python записываСт Π² свой Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ список адрСс этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Но ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ созданному ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ? πŸ€·β€β™€οΈ

Для этого ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€” ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠΌΠ΅Π½Π° вмСсто адрСсов.

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами пСрСмСнная Π² Python β€” это просто имя, ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½ΠΎΠ΅ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ

a = 123 print(a) > 123 print(type(a)) print(id(a)) 1827204944

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

ΠžΡ‚Π²Π΅Ρ‚: ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ… ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ. Π‘Π΄Π΅Π»Π°Π² это, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ находится Π² Π±ΡƒΡ‚Ρ‹Π»ΠΊΠ°Ρ…, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, смоТСтС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с Π½ΠΈΠΌΠΈ дальнСйшиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ: Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ†Π΅Π½Ρƒ, ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΡƒ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ссылки

Для понимания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создаСтС Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ присваиваСтС Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅?

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π’Π°ΠΆΠ½ΠΎ : пСрСмСнная Π² Python Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ β€” ΠΎΠ½Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ лишь ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½ΠΎΠΉ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:

b = a print(id(a)) > 1827204576 print(id(b)) > 1827204576

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ b :

b = 500 print(id(a)) > 1827204576 print(id(b)) > 56754272

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Python создал Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° int, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ пСрСмСнная b ссылаСтся Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

b = «tree» print(id(b)) > 54134048

b = «tree», пСрСмСнная b Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ссылаСтся Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строкового Ρ‚ΠΈΠΏΠ°

На ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° int со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 500 большС Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ссылаСтся. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ½ большС Π½Π΅ доступСн ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ сборщиком мусора (Ρ‚Π΅ΠΌ самым освободим Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ памяти).

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Object Identity)

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” это адрСс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² памяти.

a = b = 1 print(id(a)) > 1593636784 print(id(b)) > 1593636784 print(id(1)) > 1593636784

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ здСсь всСго ΠΎΠ΄ΠΈΠ½. А a ΠΈ b β€” ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π½Π°Π·Π²Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° Π½Π΅Π³ΠΎ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ равСнство ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° is :

Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ

ИмСнованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

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

Π­Ρ‚ΠΎ Тёсткий Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π·Π°ΠΊΠΎΠ½ языка, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ свод Π±ΠΎΠ»Π΅Π΅ мягких, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ», ΠΈ ΠΎΠ½ΠΈ говорят Π½Π°ΠΌ:

Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python. Π€ΠΎΡ‚ΠΎ Π‘ Ρ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python

Бписок Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ языкС Π΅ΡΡ‚ΡŒ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ слова. Π’Π°ΠΊΠΈΠ΅ слова ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ поэтому Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹ для использования Π² качСствС ΠΈΠΌΡ‘Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’ΠΎΡ‚ список Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов для Python:

False, class, finally, is, return, None, continue, for, lambda, try, True, def, from, nonlocal, whileand, del, global, not, with, as, elif, if, or, yield, assert, else, import, pass, break, except, in, raise.

Как ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

Π’ ΠŸΠΈΡ‚ΠΎΠ½Π΅ Π½Π΅ трСбуСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ присваивания значСния, объявлСниС происходит автоматичСски. А присваиваниС выглядит Ρ‚Π°ΠΊ:

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Python

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ:

# Ρ„Π°ΠΉΠ» main.py space_ship = ‘Millenium Falcon’ # Ρ„Π°ΠΉΠ» second.py from main import space_ship print(space_ship) > Millenium Falcon

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сущСствования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ пСрСмСнная (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ cat ), ΠΈΡ‰Π΅ΠΌ вхоТдСния строки с Π΅Ρ‘ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π² словарях, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… функциями locals() (локальная Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ) ΠΈ globals() (глобальная Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ):

if «cat» in locals(): # … if «cat» in globals(): # …

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ удаляСтся, Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Ρ‘ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π²ΠΎ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ del() :

please_dont = ‘alive’ del(please_dont) print(please_dont) > Traceback (most recent call last): print(please_dont) NameError: name ‘please_dont’ is not defined

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ?

Π‘ΠΈΠΌΠ²ΠΎΠ» * ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ нСсколько Π²Π΅Ρ‰Π΅ΠΉ.

status = [‘open’, ‘close’] print(status) > [‘open’, ‘close’] print(*status) > open close

def summer(*terms): sum = 0 for term in terms: sum = sum + term return sum print(summer(2)) > 2 print(summer(3, 3)) > 6 print(summer(4, 43, 1)) > 48

def setCreator(some_list): return <*some_list[1:]>weapons = [‘bow’, ‘pike’, ‘sword’, ‘dagger’] print(setCreator(weapons)) > <'dagger', 'pike', 'sword'>print(type(setCreator(weapons))) >

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости: Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Π‘Π½Π°Ρ‡Π°Π»Π° тСрминология. ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΈΠ»ΠΈ пространство ΠΈΠΌΠ΅Π½ β€” это мСсто Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Ρ‹Π»ΠΎ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ области видимости:

2 НСлокальная. Если Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° другая функция, Ρ‚ΠΎ пСрСмСнная Π²Π½ΡƒΡ‚Ρ€ΠΈ внСшнСго def Π±ΡƒΠ΄Π΅Ρ‚ нСлокальной для def Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ Π½Π΅ получится:

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово nonlocal :

num = 42 def globalExample(n): res = n + num return res print(globalExample(1)) > 43

БтатичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

БтатичСская пСрСмСнная сохраняСт своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Ρ‚ΠΎΠΌ-Ρ‚ΠΎ ΠΈ Π΄Π΅Π»ΠΎ, Ρ‡Ρ‚ΠΎ статичСская пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ локальной.

Π‘Π°ΠΌΠΈΡ… ΠΏΠΎ сСбС статичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ Π½Π΅Ρ‚

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

ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Python 3

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ – ΠΎΡ‡Π΅Π½ΡŒ ваТная ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹; ΠΏΠΎ сути, это символ (ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ символов), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто этого значСния ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π”Π°Π½Π½ΠΎΠ΅ руководство ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ вас с основами Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² Python 3.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ пСрСмСнная?

Π‘ тСхничСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния пСрСмСнная присваиваСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ символичСскоС имя ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° сохранСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈΠ»ΠΈ ярлык с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ привязан ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число 103204934813. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ придётся постоянно Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ число. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ число Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ my_int:

По сути, my_int – это ярлык, привязанный ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ 103204934813.

Π€Ρ€Π°Π·Π° my_int = 103204934813 – это опСрация присваивания, которая состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… частСй:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, присваивая Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ имя, Π²Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, ΠΈΠ»ΠΈ создаётС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ вмСсто значСния. Π’ Python, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, объявив, Ρ‡Ρ‚ΠΎ my_int Ρ€Π°Π²Π½ΠΎ 103204934813, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ my_int вмСсто числа. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ:

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ быстро Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ вычислСния. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π½ΡΡ‚ΡŒ 813 ΠΈΠ· my_int:

Π’ качСствС значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ матСматичСского уравнСния. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π° числа ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡ… суммы Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x:

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

Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x:

Python Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 221, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ это число получаСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ слоТСния 76 ΠΈ 145.

Π’ Π²ΠΈΠ΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ любой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числа.

my_string = ‘Hello, World!’
my_flt = 45.06
my_bool = 5 > 9 #логичСский ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ истинноС ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΠ΅
my_list = [‘item_1’, ‘item_2’, ‘item_3’, ‘item_4’] my_tuple = (‘one’, ‘two’, ‘three’)
my_dict =

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. На экранС появится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

my_list = [‘item_1’, ‘item_2’, ‘item_3’, ‘item_4’] print(my_list)
[‘item_1’, ‘item_2’, ‘item_3’, ‘item_4’]

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ выдСляСт Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€Π°Π²ΠΈΠ»Π° задания ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

БущСствуСт ряд ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слСдуСт ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

my_intmy-intint44intMY_INT$MY_INTanother_intanother int

Выбирая имя для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, слСдуСт Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ рСгистр: my_int, MY_INT, My_Int ΠΈ mY_iNt – Π½Π΅ ΠΎΠ΄Π½Π°, Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… ΠΈΠΌΡ‘Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

my_intmyIntint4Int4my_first_stringmyFirstString

Но самоС Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ – это Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Если ΡƒΠΆ Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, написанныС Π² Π²Π΅Ρ€Π±Π»ΡŽΠΆΡŒΠ΅ΠΌ стилС, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ этому ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°.

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅: PEP 8 – ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°Π½ΡƒΠ°Π» ΠΏΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π² Python

ΠŸΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· самого понятия) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСназначСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Π°: это позволяСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ значСния Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€Π΅ΠΆΠ½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚.ΠΏ.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x число, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ строку:

x = 76
print(x)
x = «8host»
print(x)
76
8host

Если Π±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° написана Ρ‚Π°ΠΊ:

x = 76
x = «8host»
print(x)

Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π° экранС появилось Π±Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ присвоСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это послСднСС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ присваиваниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Python позволяСт ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нСскольким ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π° ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΈΡ….

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ x, y ΠΈ z Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0.

x = y = z = 0
print(x)
print(y)
print(z)
0
0
0

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ области памяти.

Python Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ нСскольким ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ строки. НапримСр:

j, k, l = «8host», 1.05, 16
print(j)
print(k)
print(l)
8host
1.05
16

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ j Π±Ρ‹Π»ΠΎ присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 8host, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ k 1.05, l – 16.

Π­Ρ‚Π° функция позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΈ ΠΏΡ€ΠΈ этом ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΡ€ΠΈ использовании ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ Π΅Ρ‘ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ – это контСкст, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° доступна Π² ΠΊΠΎΠ΄Π΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НС всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ доступны ΠΈΠ· всСх частСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ – Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ доступны Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

РассмотритС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

#Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
glb_var = «global»
#ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
def var_function():
lcl_var = «local» #Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
print(lcl_var)
#Π’Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
var_function()
#Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
print(glb_var)
local
global

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пСрСмСнная glb_var являСтся глобальной, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Ρ‘ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ var_function(). ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это:

glb_var = «global»
def var_function():
lcl_var = «local»
print(lcl_var)
print(glb_var) #Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ glb_var Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
var_function()
print(glb_var)
local
global
global

Π’Π΅ΠΏΠ΅Ρ€ΡŒ пСрСмСнная glb_var выводится Π΄Π²Π°ΠΆΠ΄Ρ‹: Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΈ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

glb_var = «global»
def var_function():
lcl_var = «local»
print(lcl_var)
print(lcl_var)
NameError: name ‘lcl_var’ is not defined

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Рассмотрим Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π—Π°Π΄Π°ΠΉΡ‚Π΅ глобальной ΠΈ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ имя:

num1 = 5 #Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ пСрСмСнная
def my_function():
num1 = 10 #Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, num1
num2 = 7 #Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная
print(num1) #Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ num1
print(num2) #Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ num2
#Π’Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ my_function()
my_function()
#Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ num1
print(num1)
10
7
5

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ локальная пСрСмСнная num1 присвоСна Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ num1 появляСтся 10. ΠŸΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ num1 (послС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ my_function()) появляСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ global позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Python Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

def new_blog():
global blog = «8host» #ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
#Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ blog
print(blog)

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ пСрСмСнная blog Π±Ρ‹Π»Π° присвоСна локально Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ new_blog(), ΠΎΠ½Π° доступна Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ благодаря ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ global. ΠŸΠΎΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ print(blog) Python Π½Π΅ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ: пСрСмСнная сущСствуСт ΠΈ Π²Π½Π΅, ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ услоТняСт ΠΊΠΎΠ΄.

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

Работая с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, Π²Π°ΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… большС подходят этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅: Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅; Π½ΠΎ Ссли ΠΎΠ΄Π½Π° пСрСмСнная ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… функциях, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ локально.

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

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

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