🐍 Укус ΠΏΠΈΡ‚ΠΎΠ½Π° 🐍
2.47K subscribers
1.07K photos
24 videos
285 links
🐍 Канал ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° языкС Python. ВСматичСскиС ΡƒΡ€ΠΎΠΊΠΈ ΠΈ Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ.

πŸ‘½ Админ - @it_dashka
πŸ”Š ΠšΡƒΠΏΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ: https://telega.in/c/byteofpython

πŸ‘‰ Π§Π°Ρ‚: @abyteofpython
πŸ‘‰ ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ: @byteofpython
Download Telegram
πŸ‘©β€πŸ’» Как Python Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅: ссылки, Π° Π½Π΅ значСния

Π’ Python ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€” это Π½Π΅ β€œΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ с данными”, Π° ΠΈΠΌΠ΅Π½Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² памяти.

Когда Ρ‚Ρ‹ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡˆΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, создаётся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° имя просто ссылаСтся Π½Π° Π½Π΅Π³ΠΎ.


➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

x = [1, 2, 3]
y = x
y.append(4)

print(x) # [1, 2, 3, 4]
print(x is y) # True


x ΠΈ y ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” измСнСния ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΎΠ±ΠΎΠΈΡ…. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ копию, Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ copy() ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ copy.

πŸ“Œ Π’ Python Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ: присваиваниС Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π° лишь создаёт Π½ΠΎΠ²ΡƒΡŽ ссылку.
ΠžΡ‚ΡΡŽΠ΄Π° Ρ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Β«Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ…Β» Π±Π°Π³ΠΎΠ² Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘©β€πŸ’» Замыкания (closures) β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ помнят контСкст

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


➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

def make_multiplier(factor):
def multiply(x):
return x * factor
return multiply

double = make_multiplier(2)
print(double(5)) # 10


multiply ΠΏΠΎΠΌΠ½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ factor, Π΄Π°ΠΆΠ΅ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ make_multiplier. Π’ΠΎ Π΅ΡΡ‚ΡŒ double β€” это функция, Π·Π°ΠΌΠΊΠ½ΡƒΠ²ΡˆΠ°Ρ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя factor = 2.

πŸ“Œ Замыкания Π»Π΅ΠΆΠ°Ρ‚ Π² основС Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Ρ„Π°Π±Ρ€ΠΈΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π»Π΅Π½ΠΈΠ²Ρ‹Ρ… вычислСний.
ПониманиС этой ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ β€” шаг ΠΎΡ‚ простого Python ΠΊ "питонистому" ΠΊΠΎΠ΄Ρƒ
Please open Telegram to view this post
VIEW IN TELEGRAM
Π§Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΊΠΎΠ΄?
πŸ‘©β€πŸ’» Как Python ΠΈΡ‰Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (LEGB Rule)

Когда Ρ‚Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅ΡˆΡŒΡΡ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Python ΠΈΡ‰Π΅Ρ‚ Π΅Ρ‘ Π½Π΅ Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½ΠΎ, Π° строго ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ LEGB:
Local β†’ Enclosing β†’ Global β†’ Built-in

➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

x = "глобальная"

def outer():
x = "Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅"
def inner():
x = "локальная"
print(x)
inner()

outer()

локальная


Если ΡƒΠ±Ρ€Π°Ρ‚ΡŒ x = "локальная", Python Π²ΠΎΠ·ΡŒΠΌΡ‘Ρ‚ x ΠΈΠ· блиТайшСй внСшнСй области β€” "Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅".
Если ΠΈ Ρ‚Π°ΠΌ Π½Π΅Ρ‚ β€” ΠΈΠ· глобальной.

πŸ“Œ ПониманиС LEGB ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΡ‘Π½ ΠΈ Π±Π°Π³ΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с функциями ΠΈ замыканиями
Please open Telegram to view this post
VIEW IN TELEGRAM
❓ Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ querySelectorAll() Π² JavaScript ΠΈ ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ?

ΠœΠ΅Ρ‚ΠΎΠ΄ querySelectorAll() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список всСх элСмСнтов, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ CSS-сСлСктору. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ сразу ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ нСсколько элСмСнтов для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

βœ…ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

<ul>
<li class="item">Apple</li>
<li class="item">Banana</li>
<li class="item">Orange</li>
</ul>

<script>
const items = document.querySelectorAll(".item");
items.forEach(el => el.style.color = "blue");
</script>


πŸ“ŒΠ’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ querySelectorAll() Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ всС элСмСнты с классом item ΠΈ мСняСт ΠΈΡ… Ρ†Π²Π΅Ρ‚

querySelectorAll() ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со списками, ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΈ динамичСскими интСрфСйсами. Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ CSS-сСлСкторы ΠΈ позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ массовыС измСнСния ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅ элСмСнтов
Please open Telegram to view this post
VIEW IN TELEGRAM
Π§Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΊΠΎΠ΄?
πŸ‘©β€πŸ’» Как Python Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: всё β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Π’ Python Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” это Π½Π΅ особый синтаксис, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ класса.

Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ значСния


➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

def greet(name):
return f"ΠŸΡ€ΠΈΠ²Π΅Ρ‚, {name}!"

say_hello = greet # присвоили Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
print(say_hello("Анна")) # ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Анна!

def run(func, arg):
print(func(arg))

run(greet, "Борис") # ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚


πŸ“Œ ПониманиС, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠ°ΠΊ строки ΠΈΠ»ΠΈ списки,
ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ лямбдам, Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Π°ΠΌ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΡΡ‚ΠΈΠ»ΡŽ Π² Python
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘©β€πŸ’» ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° измСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’ Python Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ссылкС Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π½Π΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

Если функция измСняСт ΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (список, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ), измСнСния ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ снаруТи


➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

def add_item(items):
items.append("Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт")

data = ["a", "b"]
add_item(data)

print(data) # ['a', 'b', 'Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт']


πŸ“Œ Ѐункция Π½Π΅ Π²Π΅Ρ€Π½ΡƒΠ»Π° Π½ΠΎΠ²Ρ‹ΠΉ список β€” ΠΎΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉ копию (items[:] ΠΈΠ»ΠΈ items.copy()).
Please open Telegram to view this post
VIEW IN TELEGRAM
Π§Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΊΠΎΠ΄?
πŸ‘©β€πŸ’» Замыкания Π² Python β€” функция Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π—Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ (closure) β€” это функция, которая "Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚" значСния ΠΈΠ· внСшнСй области видимости, Π΄Π°ΠΆΠ΅ Ссли эта ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΡƒΠΆΠ΅ нСдоступна.

Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с состояниСм, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ классы


➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

def counter():
count = 0
def inner():
nonlocal count
count += 1
return count
return inner

c = counter()
print(c()) # 1
print(c()) # 2
print(c()) # 3


πŸ“Œ inner() ΠΏΠΎΠΌΠ½ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ count ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Β«Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Π°Β» ΠΈΠ· внСшнСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘©β€πŸ’» Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ β€” динамичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² Python ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… особСнно ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ.

Π­Ρ‚ΠΎ позволяСт ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² зависимости ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… условий, Π½Π΅ пСрСписывая ΠΊΠΎΠ΄


➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

def repeat(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
func(*args, **kwargs)
return wrapper
return decorator

@repeat(3)
def greet():
print("ΠŸΡ€ΠΈΠ²Π΅Ρ‚!")

greet()
# ΠŸΡ€ΠΈΠ²Π΅Ρ‚!
# ΠŸΡ€ΠΈΠ²Π΅Ρ‚!
# ΠŸΡ€ΠΈΠ²Π΅Ρ‚!


πŸ“Œ Π—Π΄Π΅ΡΡŒ repeat(3) создаёт Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ повторяСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 3 Ρ€Π°Π·Π°
Please open Telegram to view this post
VIEW IN TELEGRAM
Π§Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΊΠΎΠ΄?
πŸ‘©β€πŸ’» Замыкания Π² Python β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ

Π—Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΠ΅ (closure) β€” это функция, которая Β«Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚Β» значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ· области видимости, Π³Π΄Π΅ ΠΎΠ½Π° Π±Ρ‹Π»Π° создана, Π΄Π°ΠΆΠ΅ Ссли эта ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΡƒΠΆΠ΅ нСдоступна.

Π­Ρ‚ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для инкапсуляции состояния Π±Π΅Π· классов


➑️ ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

def counter(start=0):
count = start
def increment():
nonlocal count
count += 1
return count
return increment

click = counter(10)
print(click()) # 11
print(click()) # 12


πŸ“Œ Ѐункция increment Ρ…Ρ€Π°Π½ΠΈΡ‚ доступ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ count, Π΄Π°ΠΆΠ΅ послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· counter
Please open Telegram to view this post
VIEW IN TELEGRAM