Sobes.tech
Middle

Ինչպես են կառուցված փոփոխականները Python-ում?

sobes.tech AI

Պատասխան AI-ից

Փոփոխականները Python-ում չեն տվյալների կոնտեյներներ, այլ ավելի շատ նշաններ կամ անուններ, որոնք հղում են կատարում հիշողության օբյեկտներին:

Երբ դուք նշանակում եք արժեք փոփոխականին, դուք այդ արժեքը չէ պատճենում, այլ հղում եք ստեղծում գոյություն ունեցող կամ ստեղծվող օբյեկտին:

Հիմնական հասկացություններ՝

  • Փոփոխականների անուններ: Կարող են պարունակել տառեր (լատինատառ), թվեր և ստորակետ: Չեն կարող սկսվել թվից: Հասկանալի են մեծատառ-փոքրատառ տարբերությամբ:
  • Օբյեկտներ: Բոլորը Python-ում օբյեկտներ են: Յուրաքանչյուր օբյեկտ ունի տիպ, արժեք և նույնականացնող (հասցե հիշողության մեջ):
  • Հղումներ: Փոփոխականը պահում է հղում օբյեկտի նույնականացմանը:

Օրինակ՝

# Ստեղծում ենք int օբյեկտ արժեքով 100 և հղում դրա նույնականացմանը 'a'-ին

a = 100 
# Փոփոխականը 'b' այժմ հղում է նույն օբյեկտին՝ int արժեքով 100

b = a
# Ստեղծում ենք նոր int օբյեկտ արժեքով 200 և հղում դրա նույնականացմանը 'a'-ին

a = 200 

Այս օրինակով՝

Երբ a = 200, փոփոխականը a հղում է նոր օբյեկտին՝ 200, իսկ b դեռ հղում է 100-ին:

  • Դինամիկ տիպավորում: Փոփոխականի տիպը որոշվում է այն օբյեկտի տիպով, որի վրա հղում է, և կարող է փոխվել ծրագրի գործարկման ընթացքում:
# Փոփոխական `x` հղում է int օբյեկտին
x = 10 
# Այժմ `x` հղում է str օբյեկտին
x = "hello" 
  • Մաքրման գործընթաց: Երբ օբյեկտին այլ հղումներ չկան, Python-ը ինքնաբերաբար ազատում է հիշողությունը՝ օգտագործելով մաքրման մեխանիզմը:

  • Անփոփոխ (immutable) և փոփոխական (mutable) օբյեկտներ:

    • Անփոփոխ: Թվեր, տողեր, տիպեր: Փորձել փոփոխել such օբյեկտը՝ ստեղծվում է նոր օբյեկտ:
    • Փոփոխական: Սպասակներ, բառարաններ, հավաքածուներ: Նրանց պարունակությունը կարելի է փոխել առանց նոր օբյեկտ ստեղծելու:
# Անփոփոխ str օբյեկտ
s = "world"
# Ստեղծվում է նոր str օբյեկտ "hello world", `s` հղում է այդ օբյեկտին
s = "hello " + s

# Փոփոխական list օբյեկտ
l = [1, 2, 3]
# Փոփոխվում է առկա list օբյեկտի պարունակությունը
l.append(4) 

Այսպիսով՝ Python-ում փոփոխականները հարմար և հզոր գործիքներ են տվյալների աշխատանքի համար՝ հիմնված օբյեկտների հղումների վրա։