Treci la conținutul principal

Clase interioare în Python

Python îți permite să definești o clasă în interiorul altei clase. Această clasă interioară poate folosi proprietățile și metodele clasei exterioare atunci când primește un obiect al clasei exterioare.

Când o clasă este necesară într-un singur loc, dacă o definești în interiorul altei clase, păstrezi împreună codul înrudit, iar programul tău este mai bine organizat.

Exemplu

Definește o clasă interioară:

Prompt
Scrieți în Python o clasă Outer care conține o clasă Inner. Creați un obiect Outer și afișați numele său.
Ieșire: program Python complet

Accesarea clasei interioare din exterior

Accesul la clasa interioară din exterior se face în doi pași: mai întâi construiești un obiect al clasei exterioare, apoi îl folosești pentru a construi un obiect al clasei interioare:

Exemplu

Construiește un obiect al clasei interioare și apelează-i metoda:

Prompt
Scrieți în Python o clasă Outer cu o clasă Inner care are o metodă display. Accesați clasa interioară din exterior.
Ieșire: program Python complet

Accesarea clasei exterioare din clasa interioară

Un obiect al clasei interioare nu primește automat o legătură cu o instanță a clasei exterioare.

Pentru această legătură, transmite instanța clasei exterioare către clasa interioară ca parametru:

Exemplu

Dă clasei interioare o instanță a clasei exterioare:

Prompt
Scrieți în Python o clasă Outer în care clasa Inner primește instanța clasei exterioare și accesează proprietatea name a acesteia.
Ieșire: program Python complet

Exemplu practic

O utilizare frecventă a unei clase interioare este o clasă ajutătoare care are sens doar alături de clasa ei exterioară:

Exemplu

Motorul unei mașini, modelat ca o clasă interioară:

Prompt
Scrieți în Python o clasă Car cu o clasă interioară Engine care are metodele start/stop. Metoda drive a clasei Car verifică starea motorului.
Ieșire: program Python complet

Mai multe clase interioare

Nimic nu te limitează la o singură clasă interioară; o clasă poate conține mai multe:

Exemplu

O clasă cu două clase interioare:

Prompt
Scrieți în Python o clasă Computer cu clasele interioare CPU și RAM, fiecare cu propriile metode.
Ieșire: program Python complet