Sobes.tech
Middle

Ako sú v Pythone usporiadané premenné?

sobes.tech AI

Odpoveď od AI

Premenné v Pythone nie sú kontajnery s údajmi, ale skôr štítky alebo mená, ktoré odkazujú na objekty v pamäti.

Keď priraďujete hodnotu premennej, nekopírujete túto hodnotu, ale vytvárate odkaz na existujúci alebo vytváraný objekt.

Základné koncepty:

  • Názvy premenných: Môžu obsahovať písmená (latinské), číslice a podčiarknutie. Nemôžu začínať číslom. Sú citlivé na veľkosť písmen.
  • Objekty: Všetko v Pythone je objekt. Každý objekt má typ, hodnotu a identifikátor (adresu v pamäti).
  • Odkazy: Premenná uchováva odkaz na identifikátor objektu.

Príklad:

# Vytvoríme objekt int s hodnotou 100 a priradíme jeho identifikátor k 'a'
a = 100 
# Premenná 'b' teraz odkazuje na ten istý objekt int s hodnotou 100
b = a
# Vytvoríme nový objekt int s hodnotou 200 a priradíme jeho identifikátor k 'a'
a = 200 

V tomto príklade, po a = 200, premenná a odkazuje na nový objekt 200, zatiaľ čo premenná b stále odkazuje na objekt 100.

  • Dynamické typovanie: Typ premennej je určený typom objektu, na ktorý odkazuje, a môže sa meniť počas behu programu.
# Premenná 'x' odkazuje na objekt int
x = 10 
# Teraz premenná 'x' odkazuje na objekt str
x = "hello" 
  • Zber odpadu: Keď na objekt nie sú žiadne odkazy, Python automaticky uvoľní pamäť, ktorú tento objekt zaberá, pomocou mechanizmu zberu odpadu.

  • Nepremenné (immutable) vs. meniteľné (mutable) objekty:

    • Nepremenné: Čísla, reťazce, n-tice. Pri pokuse "zmeniť" takýto objekt, sa v skutočnosti vytvorí nový objekt.
    • Meniteľné: Zoznamy, slovníky, množiny. Ich obsah je možné meniť bez vytvárania nového objektu.
# Nepremenný string objekt
s = "world"
# Vytvorí sa nový string "hello world", na ktorý `s` odkazuje
s = "hello " + s

# Meniteľný zoznam
l = [1, 2, 3]
# Obsah existujúceho zoznamu sa zmení
l.append(4) 

Takto sú premenné v Pythone flexibilné a mocné nástroje na prácu s dátami, založené na koncepte odkazov na objekty.