Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΈ привязка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

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

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

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

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Если имя связываСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ΠΠ΅Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Python 3 Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½ΠΎΠ²ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ** Π½Π΅Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ **. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово nonlocal добавляСт ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ области Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ всС ΠΎΠ± этом Π² [PEP 3104] [1]. Π­Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°Ρ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π°. Одним ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² являСтся созданиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ:

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ** UnboundLocalError * * ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ** num ** ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Π² самой Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π² смСсь:

По сути, `nonlocal` ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²ΠΎ внСшнСй области, Π½ΠΎ Π½Π΅ Π² глобальной области. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `nonlocal` Π² нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ` counter`, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ попытаСтся Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅, ΠΈ Π²Ρ‹ быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ `SyntaxError`. ВмСсто этого Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ `nonlocal` Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. (ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ прСдставлСнная здСсь Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° с использованиСм Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².)

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости класса ΠΏΡ€ΠΈ поискС ΠΈΠΌΠ΅Π½

ΠšΠ»Π°ΡΡΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Π²ΠΎ врСмя опрСдСлСния, Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ эту ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈ поискС ΠΈΠΌΠ΅Π½. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ лямбда-выраТСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ функциями, Π° ΠΈΡ… ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ рСализуСтся с использованиСм области дСйствия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡƒ повСдСнию.

Из Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π° Π½Π° имСнования ΠΈ связывания :

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ссылки ΠΈΠ· этого ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΏΠΎ Martijn ΠŸΠΈΡ‚Π΅Ρ€Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· этого повСдСния.

Команда del

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько связанных, Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ.

del v

Если v являСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΠΌΠ°Π½Π΄Π° del v удаляСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ· Π΅Π΅ сфСры. НапримСр:

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

del v.name

НамСрСниС состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ name отсутствуСт. НапримСр:

del v[item]

del v[a:b]

ΠœΠ΅ΡΡ‚Π½Ρ‹ΠΉ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ…Π²Π°Ρ‚

ΠšΠ°ΠΊΠΎΠ²Ρ‹ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности?

ОбъяснСниС состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ локальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° глобальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ d, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π²Π½Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

МоТно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ находятся Π² ΠΊΠ°ΠΊΠΎΠΉ области. ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ locals() ΠΈ globals() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ†Π΅Π»Ρ‹Π΅ области ΠΊΠ°ΠΊ словари.

Π§Ρ‚ΠΎ происходит с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½?

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово global :

ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия опрСдСляСтся для всСго Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ!

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ пСрСмСнная Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ глобальной для ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ локальной ΠΏΠΎΠ·ΠΆΠ΅, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ любой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° локальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия для этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ глобальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. Π’Π°ΠΌ Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… областСй.

Global ΠΏΡ€ΠΎΡ‚ΠΈΠ² nonlocal (Python 3 Ρ‚ΠΎΠ»ΡŒΠΊΠΎ)

Оба эти ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для получСния доступа Π½Π° запись ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ для Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Из Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Python Π½Π° nonlocal :

ΠΠ΅Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ заставляСт пСрСчислСнныС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°Π½Π΅Π΅ связанныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² блиТайшСй ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ области, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Бинтаксис

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

Научим основам Python ΠΈ Data Science Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅

Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСоритичСский курс, Π° ΠΎΠ½Π»Π°ΠΉΠ½-Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€, с ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π·Π°Π΄Π°Ρ‡, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π² любоС ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ врСмя 24/7. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚, разрабатывая качСствСнный ΠΊΠΎΠ΄ ΠΈ анализируя Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

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

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ global ΠΈ nonlocal ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Python

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Python ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°.

ΠœΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ с ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ руководства ΠΏΠΎ областям видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ расскаТСм, ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Π²Π°ΡˆΠΈΡ… собствСнных функциях.

ΠžΠ±Π»Π°ΡΡ‚ΠΈ видимости Π² Python

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

И Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΈ Π² ΠΆΠΈΠ·Π½ΠΈ, Π²Π°ΠΆΠ΅Π½ контСкст.

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

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ классС (ΠΊΠ°ΠΊ пСрСмСнная экзСмпляра), ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Python

Как ΠΈ оТидалось, этот ΠΊΠΎΠ΄ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π°ΠΌ:

Но Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ?

ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

Π§Ρ‚ΠΎΠ±Ρ‹ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠ³Π»Π° ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ глобально (Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π΅ глобально.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Python

Π§Ρ‚ΠΎ, Ссли вмСсто ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ опрСдСлСния нашСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ пСрСмСстим Π΅Π΅ Π½Π°Ρ€ΡƒΠΆΡƒ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Ρ‚Π°ΠΌ?

Π’ этом случаС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Π΅ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ fruit ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ shopping_list() создав Π½ΠΎΠ²ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ΠœΡ‹ создали Π΅Π΅, присвоили Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ послС этого Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ сдСлали. Π­Ρ‚ΠΎ фактичСски ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. print() Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

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

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

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² нашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊ Π½Π΅ΠΉ доступ Π² любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС.

ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π΄Π°ΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΉ доступ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π½Π΅ опрСдСляя Π΅Π΅ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ:

ΠžΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ использовании Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ВсСгда Π²Π°ΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ контСкстС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½, Π° Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, оставив Π΅Π³ΠΎ Π² ΠΏΠΎΠΊΠΎΠ΅, это основной Π΄Π²ΠΈΠΆΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° инкапсуляции.

ΠœΡ‹ быстро рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ· способов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π² вашСм собствСнном ΠΊΠΎΠ΄Π΅:

Запустив ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

Если ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ этот порядок ΠΈΠ»ΠΈ попытаСмся ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, ΠΌΡ‹ столкнСмся с большой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ это Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚:

А ΠΈΠΌΠ΅Π½Π½ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ fruit это строка, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ. Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ Ρ…ΡƒΠΆΠ΅, эта ошибка Π½Π΅ проявляСтся, ΠΏΠΎΠΊΠ°, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡƒ, Π½Π΅ станСт слишком ΠΏΠΎΠ·Π΄Π½ΠΎ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ.

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

Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ остороТным, Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π½Π΅ указывая Π΅Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ счСтчик. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ функциями.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΌΡ‹ использовали списки ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ ΠΈ Ρ„Ρ€ΡƒΠΊΡ‚Ρ‹, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ оформлСния Π·Π°ΠΊΠ°Π·Π°, которая суммируСт сумму ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ:

Запустив ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, глобальная пСрСмСнная count ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ являСтся локальной для внСшнСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π½Π΅ влияСт (ΠΈΠ»ΠΈ Π½Π΅ сущСствуСт) Π½Π° Π±ΠΎΠ»Π΅Π΅ высоком ΡƒΡ€ΠΎΠ²Π½Π΅. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ свободу Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊ вашим функциям.

Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ это, ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π² Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ pct_off Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° подсчСта ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ:

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

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

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости

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

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Для создания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΡ… локальной ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ всСго лишь ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² дСйствии, достаточно ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ цСлочислСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ x ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 100 Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f, ΠΊΠ°ΠΊ это сдСлано Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

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

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

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² любой части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, слСдуСт ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Для этого ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ области ΠΊΠΎΠ΄Π°, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ дСмонстрируСтся идСнтификация цСлочислСнного Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ x, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·ΠΆΠ΅ выводится Π½Π° экран ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° print Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f:

Как ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 100 воспроизводится Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· f, Π½ΠΎ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ print. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ доступа ΠΊ x осущСствляСтся ΠΈΠ· любой части ΠΊΠΎΠ΄Π°, благодаря глобальной области видимости ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Но Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π½Π΅ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ? Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ экспСримСнта прСдставлСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π°:

Ѐункция f присваиваСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 200 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΈΠΌΠ΅Π½Π΅ΠΌ x, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²ΠΎΠΏΡ€Π΅ΠΊΠΈ оТиданиям, внСшний ΠΌΠ΅Ρ‚ΠΎΠ΄ print Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ число 100, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Π»ΠΎ x ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Π°ΠΊ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° x с локальной, Π° Ρ‚Π°ΠΊΠΆΠ΅ глобальной ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости. Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово global:

ΠŸΠΎΠΌΠ΅Ρ‚ΠΈΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x ΠΊΠ°ΠΊ global, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΅Π΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Π½Π΅ Π·ΠΎΠ½Ρ‹ дСйствия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f. Π’Π΅ΠΏΠ΅Ρ€ΡŒ послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π² x помСстили число 200, Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° print Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Но всС Ρ‚Π°ΠΊΠΈ Π½Π΅ стоит Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ значСния Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½ΠΎΠ², Π° Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ глобальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠΠ΅Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Π˜Ρ‚Π°ΠΊ, для обращСния ΠΊ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово global ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ. Но Ρ‡Ρ‚ΠΎ Ссли трСбуСтся Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ совсСм Π½Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, которая Π±Ρ‹Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π²ΠΎ внСшнСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, являясь ΠΏΡ€ΠΈ этом локальной для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½, находящСгося Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Ρ‹ΡˆΠ΅? Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ дСмонстрируСт ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ взаимодСйствия со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· внСшнСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f1 Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ f2:

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ x Π±Ρ‹Π»ΠΎ присвоСно Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 200, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния написанных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π° экранС ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ»ΠΎΡΡŒ 100. Как ΠΈ Π² Ρ‚ΠΎΠΌ случаС с двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, локальной ΠΈ глобальной, здСсь имССтся Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… ΠΊΠΎΠ΄Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ являСтся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ nonlocal:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ f2 осущСствляСтся запись значСния 200 Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f1. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… дСйствий, Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° f1 ΠΈΠ· внСшнСй части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ создаСт Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ мСняСтся Π² f2 со 100 Π½Π° 200 ΠΈ выводится ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ print.

Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠ· Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ модуля

Π’Π΅ΠΏΠ΅Ρ€ΡŒ разбСрСмся с Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹ΠΌΠΈ модулями Python. НапримСр, ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ import. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ„Π°ΠΉΠ» Β«test.pyΒ» ΠΈ Π² Π½Π΅Π³ΠΎ запишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x для модуля test. Π’Π°ΠΊ ΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим Ρ„Π°ΠΉΠ» main.py, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ. Π’ Π½Π΅ΠΌ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ test, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ создадим свою Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x. ПослС этого Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ значСния глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· test, Π²Ρ‹Π·ΠΎΠ²ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ main Π½Π΅ измСнилось:

ΠœΡ‹ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΆΠ΅ строчкС записали Π² x Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 200. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ сдСлано, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ внСшний ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ измСнится. Π’Π°ΠΊ ΠΈ Π²Ρ‹ΡˆΠ»ΠΎ. ΠžΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’ этом случаС для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΡ‹ использовали ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«from test import *Β». ΠœΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ модуля Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ main измСнилось. Но ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x ΠΈΠ· модуля test. ПослС присвоСния Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ функция f Π½Π΅ измСняСтся.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² классС

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² функциях, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ Π² классС Python. Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠœΡ‹ объявили Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x. Π’Ρ‹Π²Π΅Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎ ΠΈ послС объявлСния класса. Как Π²ΠΈΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСнилось. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΡ‹ создали ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ€Π°Π· помСнялось. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ сработал конструктор класса β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ __init__. ПослС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f Ρƒ созданного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ стало 400. Π’ Python использованиС global пСрСмСнная ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ класса, ΠΈ Π² Π΅Π³ΠΎ конструкторС, ΠΈ послС описания класса Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ измСнСния глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Если ΡƒΠ±Ρ€Π°Ρ‚ΡŒ это объявлСниС, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° выполнится присвоСниС локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ Ссли ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² классС, Ρ‚ΠΎ ΠΊ Π½Π΅ΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ возмоТности доступа ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса:

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π», пСрСмСнная x Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»ΡŒ глобальной.

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

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² языкС программирования Python, являСтся Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ взаимодСйствиС со всСми Π΅Π΅ особСнностями позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ мноТСства довольно слоТных ошибок. Для Π±ΠΎΠ»Π΅Π΅ бСзопасного контроля Π½Π°Π΄ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова global ΠΈ nonlocal. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ свСдСниями ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅, слСдуСт ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ PEP 3104.

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Python: объявлСниС, объСдинСниС, Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅

Π”Π°Ρ‚Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ: 2019-06-14

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

ΠžΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°: Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ пСрСмСнная Π² Python? ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Python являСтся Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ячСйкой памяти для хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, пСрСмСнная Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Python ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

КаТдоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Python ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Python: Numbers, List, Tuple, Strings, Dictionary ΠΈ Ρ‚. Π΄. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ с Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, a, aa, abc ΠΈ Ρ‚. Π΄. Π’ этом руководствС ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ:

ΠžΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

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

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

БСсплатный курс Β«Python. Быстрый старт»

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ курс ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° тСкстов Π½Π° Python

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

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

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ΠœΡ‹ объявим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Β«Π°Β» ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π΅Π΅.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π΄Π°ΠΆΠ΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ объявили Π΅Π΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π—Π΄Π΅ΡΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ пСрСмСнная, инициализированная ΠΊΠ°ΠΊ, f =0. ПозТС ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΠΌ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ f Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«guru99β€³.

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Python 2

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Python 3

ОбъСдинСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, смоТСтС Π»ΠΈ Π²Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ строка ΠΈ число. НапримСр, ΠΌΡ‹ объСдиняСм Β«GuruΒ» с числом Β«99Β».

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ число со строкой, Π½Π΅ объявляя число ΠΊΠ°ΠΊ строку, Python Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ число Π±Ρ‹Π»ΠΎ объявлСно ΠΊΠ°ΠΊ строка, ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ошибка TypeError.

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

Для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄:

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число объявлСно ΠΊΠ°ΠΊ строка, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Β«GuruΒ» + str (Β«99β€³) = Β«Guru99β€³.

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

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

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся Π² этой Ρ€Π°Π·Π½ΠΈΡ†Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ локальной ΠΈ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Β«fΒ» являСтся глобальной ΠΈ Π΅ΠΉ присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 101, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выводится.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ f снова объявлСна Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. Π•ΠΉ присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«I am learning Python.Β», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выводится. Π­Ρ‚Π° пСрСмСнная отличаСтся ΠΎΡ‚ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Β«fΒ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π½Π΅Π΅.

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

БСсплатный курс Β«Python. Быстрый старт»

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ курс ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° тСкстов Π½Π° Python

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная пСрСмСнная f уничтоТаСтся. Π’ строкС 12, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ снова Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«fΒ», ΠΎΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ f =101.

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Python 2

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Python 3

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово global, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Β«fΒ» являСтся глобальной ΠΈ Π΅ΠΉ присваиваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 101, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выводится Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ f ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ с использованиСм ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова global. Π­Ρ‚ΠΎ НЕ локальная пСрСмСнная, Π½ΠΎ Ρ‚Π° ΠΆΠ΅ глобальная пСрСмСнная, объявлСнная Ρ€Π°Π½Π΅Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π²Π΅Π½ 101

ΠœΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«fΒ» Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Β«fΒ» сохраняСтся. Π’ строкС 12, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ снова Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«fΒ», ΠΎΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«changing global variableΒ»

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Python 2

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Python 3

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

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ del «имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΒ». Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ f, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ приступили ΠΊ Π΅Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«variable name is not definedΒ», Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Ρ‹Β» ΠΈΠ»ΠΈ Β«ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹Β», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ информация. Как ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык программирования, Python Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, aa, abc ΠΈ Ρ‚. Π΄.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π΄Π°ΠΆΠ΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ объявили ΠΈΡ… ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·

Π’ Python Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ строку с числом Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΈ послС этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ число со строкой

ΠžΠ±ΡŠΡΠ²Π»ΡΠΉΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠΎΠ³Π΄Π° Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ΠžΠ±ΡŠΡΠ²Π»ΡΠΉΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠΎΠ³Π΄Π° Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Для удалСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Β«delΒ».

РСдакция: Команда webformyself.

Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная. Π€ΠΎΡ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрСмСнная b Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ локальная ΠΈΠ»ΠΈ глобальная

БСсплатный курс Β«Python. Быстрый старт»

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ курс ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° тСкстов Π½Π° Python

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

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

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ связанноС с Π½ΠΈΠΌΠΈ прСдставлСниС ΠΎΠ± областях видимости. БоотвСтствСнно, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²ΠΈΠ΄Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² локальной области видимости, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятая функция. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²ΠΈΠ΄Π½Ρ‹ Π²ΠΎ всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. «Π’ΠΈΠ΄Π½Ρ‹» – Π·Π½Π°Ρ‡ΠΈΡ‚, извСстны, доступны. К Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ связанноС с Π½ΠΈΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

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

ВСрнСмся ΠΊ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΠ· ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠΊΠ°, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ упростив Π΅Π΅ для удобства:

Бколько здСсь ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…? КакиС ΠΈΠ· Π½ΠΈΡ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° ΠΊΠ°ΠΊΠΈΠ΅ – Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ?

К локальной области относятся Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Если, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² глобальной области видимости, ΠΌΡ‹ попытаСмся ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка:

Однако ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ:

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

Если Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Ρ‚ΠΎ Π΅Π³ΠΎ Π½Π°Π΄ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ для дальнСйшСго использования. Для этого подошли Π±Ρ‹ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’ Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. НапишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π²Π²Π΅Π»ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ result ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΅Π΅ Π½ΡƒΠ»Π΅ΠΌ. Π’ функциях Π΅ΠΉ присваиваСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСний. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выводится Π½Π° экран. ΠœΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠžΠ΄Π½Π°ΠΊΠΎβ€¦

… Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ.

Когда функция Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ локальной result тСряСтся, Π° глобальная Π½Π΅ Π±Ρ‹Π»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°.

На самом Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Для этого сущСствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π° global :

Π’ Ρ‚Π°ΠΊΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

Однако ΠΌΠ΅Π½ΡΡ‚ΡŒ значСния Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ – плохая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… программисту Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ, Π³Π΄Π΅, какая функция ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ смотрит Π½Π° исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ остаСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅. Π‘Π»ΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ какая-Ρ‚ΠΎ функция помСняла Π΅Π³ΠΎ. ПодобноС Π²Π΅Π΄Π΅Ρ‚ ΠΊ логичСским ошибкам.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. И ΡƒΠΆΠ΅ это ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² глобальной области видимости. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±ΠΎΠ»Π΅Π΅ понятной.

Как функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСно Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠΊΠ°Ρ….

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π°

Π’ языкС Python ΠΌΠΎΠΆΠ½ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ описанию.

Как Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠ· основной Π²Π΅Ρ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ? ΠŸΠΎΡ‡Π΅ΠΌΡƒ?

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ Π² android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ pdf-вСрсии курса

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

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

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