πŸ’‘ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: понятиС, использованиС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² Python - это пСрСмСнная, которая Ρ…Ρ€Π°Π½ΠΈΡ‚ адрСс Π² памяти, Π³Π΄Π΅ находится другая пСрСмСнная ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Он позволяСт Π½Π°ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:


# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x ΠΈ присваиваСм Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5
x = 5

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ p ΠΈ присваиваСм Π΅ΠΌΡƒ адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x
p = x

# ИзмСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x
x = 10

# Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ p
print(p)  # Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: 5

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ создали ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x ΠΈ присвоили Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создали ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ p ΠΈ присвоили Π΅ΠΌΡƒ адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ p Π½Π΅ мСняСтся ΠΈ остаСтся Ρ€Π°Π²Π½Ρ‹ΠΌ 5.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

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

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ссылки

Π’ Python ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ хранят ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° Π½Π΅ сами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Когда ΠΌΡ‹ присваиваСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π° самом Π΄Π΅Π»Π΅ ΠΌΡ‹ присваиваСм ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ пСрСмСнная являСтся ссылкой Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ мСсто Π² памяти, Π³Π΄Π΅ хранится ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.


    x = 10
    y = x
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, пСрСмСнная "x" Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10, Π° пСрСмСнная "y" Ρ…Ρ€Π°Π½ΠΈΡ‚ ссылку Π½Π° Ρ‚ΠΎ ΠΆΠ΅ мСсто Π² памяти, Π³Π΄Π΅ хранится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10. Если ΠΌΡ‹ измСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ "x", Ρ‚ΠΎ пСрСмСнная "y", которая ссылаСтся Π½Π° Ρ‚ΠΎ ΠΆΠ΅ мСсто Π² памяти, Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


    x = 10
    y = x
    
    x = 20
    
    print(y)  # Output: 20
    

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ явно ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "id()". Ѐункция "id()" Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ссылки Π½Π° Π½Π΅Π³ΠΎ.


    x = 10
    y = id(x)
    
    print(y)  # Output: 140731162966384
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, пСрСмСнная "x" Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 10, Π° пСрСмСнная "y" Ρ…Ρ€Π°Π½ΠΈΡ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ "id()". Π’Π΅ΠΏΠ΅Ρ€ΡŒ пСрСмСнная "y" ссылаСтся Π½Π° Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся пСрСмСнная "x".

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ

ИспользованиС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ряд прСимущСств:

  • ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ значСниями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π° счСт сокращСния объСма копирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° слоТных структур Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ связанныС списки ΠΈ Π³Ρ€Π°Ρ„Ρ‹

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

Π₯отя ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Python Π½Π΅Ρ‚ Π² явном Π²ΠΈΠ΄Π΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ ссылки для создания ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ повСдСния. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΈ. ПониманиС этих ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ Π²Π°ΠΆΠ½ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ эффСктивных ΠΈ Π³ΠΈΠ±ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

БлияниС списков. ΠœΠ΅Ρ‚ΠΎΠ΄ Π΄Π²ΡƒΡ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Python

Π—Π°Π΄Π°Ρ‡Π° ΠΈΠ· БобСсСдования Π² Амазон: Поиск ЗнамСнитости. ΠœΠ΅Ρ‚ΠΎΠ΄ Π΄Π²ΡƒΡ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ

Паша ΠΈ алгосы. Π§Π΅Ρ‚Ρ‹Ρ€Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Π΄Π²Π° указатСля

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ float Π² Python?

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ CUDA Π² Python: простыС инструкции ΠΈ совСты πŸ‘¨β€πŸ’»πŸ

πŸš€ Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Python Π½Π° CΠΈ: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

πŸ’‘ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: понятиС, использованиС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

πŸ”§ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива Π² Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ простыС способы

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π² Python range? πŸπŸ”’ ПолноС руководство ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования

Как Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: простоС объяснСниС с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ 🐍