Clase și obiecte Python [cu exemple]

Publicat: 2021-06-25

OOP – prescurtare de la Object-Oriented Programming – este o paradigmă care se bazează pe obiecte și clase pentru a crea programe funcționale. OOP-urile lucrează la modularitatea codului, iar clasele și obiectele ajută la scrierea unor bucăți de cod simple și reutilizabile care pot fi folosite pentru a crea funcții și module software mai mari. C++, Java și Python sunt cele mai utilizate trei limbaje de programare orientată pe obiecte. Cu toate acestea, când vine vorba de cazurile de utilizare actuale – precum Data Science și Statistical Analysis – Python le depășește pe celelalte două.

Nu este o surpriză, deoarece oamenii de știință în domeniul datelor din întreaga lume jură pe capacitățile limbajului de programare Python. Dacă intenționați să începeți o carieră în știința datelor și doriți să stăpâniți Python - cunoașterea claselor și a obiectelor ar trebui să fie prima ta prioritate.

Prin acest articol, vă vom ajuta să înțelegeți toate nuanțele din spatele obiectelor și claselor în Python, împreună cu modul în care puteți începe să vă creați propriile clase și să lucrați cu ele.

Cuprins

Cursuri în Python

O clasă în Python este un prototip definit de utilizator cu ajutorul căruia sunt create obiectele. Mai simplu, o clasă este o metodă de grupare a datelor și a funcționalității . Cele două cuvinte cheie sunt importante de reținut. Date înseamnă orice variabile instanțiate sau definite, în timp ce funcționalitatea înseamnă orice operație care poate fi efectuată pe acele date. Împreună cu datele și funcționalitățile incluse într-un singur pachet, primim cursuri.

Pentru a înțelege necesitatea creării unei clase, luați în considerare următorul exemplu simplu. Să presupunem că doriți să urmăriți pisicile din vecinătatea dvs. care au caracteristici diferite, cum ar fi vârsta, rasa, culoarea, greutatea etc. Puteți utiliza o listă și urmări elementele într-un mod 1:1, adică puteți urmări rasa până la vârsta sau vârsta la greutate folosind o listă. Ce se întâmplă dacă ar trebui să fie 100 de pisici diferite? Ce se întâmplă dacă mai trebuie adăugate proprietăți? Într-un astfel de scenariu, utilizarea listelor tinde să fie neorganizată și dezordonată.

Tocmai acolo intră cursurile!

Clasele vă ajută să creați o structură de date definită de utilizator care are propriile membri de date (variabile) și funcții membre. Puteți accesa aceste variabile și metode pur și simplu creând un obiect pentru clasă (vom vorbi mai multe despre el mai târziu). Deci, într-un fel, clasele sunt la fel ca un plan pentru un obiect.

În plus, crearea claselor creează automat un nou tip de obiecte – ceea ce vă permite să creați în continuare mai multe obiecte de același tip. Fiecare instanță de clasă poate avea atribute atașate pentru a-și menține starea. Instanțele de clasă pot avea ele însele metode (așa cum sunt definite de clasa lor) pentru modificarea stării.

Câteva puncte despre clasa Python:

  • Clasele sunt create folosind cuvântul cheie class.
  • Atributele sunt variabilele care sunt specifice clasei pe care ați creat-o.
  • Aceste atribute sunt întotdeauna publice în natură și pot fi accesate folosind operatorul punct după numele clasei. De exemplu, ClassName.AttributeName vă va aduce detaliile de atribut specifice acelei clase.

Sintaxa pentru definirea unei clase:

clasa ClassName:

# Declarație-1

.

.

.

# Declarație-N

De exemplu:

pisica de clasa:

trece

În exemplul de mai sus, cuvântul cheie class indică faptul că creați o clasă urmată de numele clasei (Cat în acest caz). Rolul acestei clase nu a fost încă definit.

Avantajele utilizării claselor în Python

  • Cursurile vă ajută să păstrați toate tipurile diferite de date organizate corect într-un singur loc. În acest fel, păstrați codul curat și modular, îmbunătățind lizibilitatea codului.
  • Utilizarea claselor vă permite să beneficiați de o altă paradigmă POO – numită Moștenire. Acesta este momentul în care o clasă moștenește proprietățile altei clase.
  • Clasele vă permit să înlocuiți orice operator standard.
  • Clasele vă fac codul reutilizabil, ceea ce face programul mult mai eficient.

Obiecte în Python

Un obiect este pur și simplu o instanță a oricărei clase pe care ați definit-o. În momentul în care creați o clasă, o instanță automată este deja creată. Astfel, ca în exemplu, clasa Cat instanțiază automat un obiect ca o pisică reală – de rasă persană și în vârstă de 3 ani. Puteți avea multe cazuri diferite de pisici cu proprietăți diferite, dar pentru a avea sens - veți avea nevoie de o clasă ca ghid. În caz contrar, vei ajunge să te simți pierdut, fără să știi de ce informații este nevoie.

Un obiect este caracterizat în general de trei lucruri:

  • Stare: Se referă la diferitele atribute ale oricărui obiect și la diferitele proprietăți pe care le poate afișa.
  • Comportament: Aceasta denotă practic metodele acelui obiect. De asemenea, reflectă modul în care acest obiect anume interacționează sau răspunde la alte obiecte.
  • Identitate: Identitatea este numele unic al obiectului prin care poate fi invocat atunci când este necesar.

1. Declararea obiectelor

Declararea obiectelor este cunoscută și ca instanțierea unei clase, deoarece de îndată ce definiți o clasă, un obiect implicit este creat în sine (așa cum am văzut mai devreme) - care este instanța acelei clase. De asemenea, de fiecare dată când creați un obiect, în esență creați o nouă instanță a clasei dvs.

În ceea ce privește cele trei lucruri (stare, comportament, identitate) pe care le-am menționat mai devreme, toate instanțele (obiectele) împărtășesc comportament și stare, dar identitățile lor sunt diferite. O singură clasă poate avea orice număr de obiecte, așa cum este cerut de programator.

Consultați exemplul de mai jos. Iată un program care explică cum să instanțiezi clase.

pisica de clasa:

# O clasă simplă

# atribut

attr1 = „felină”

attr2 = „pisica”

# O metodă de probă

def fun(self):

print(„Sunt un”, self.attr1)

print(„Sunt un”, self.attr2)

# Cod șofer

# Instanțierea obiectului

Tom = pisica()

# Accesarea atributelor clasei

# și metoda prin obiecte

imprimare(Tom.attr1)

Tom.fun();

Rezultatul acestui program simplu va fi după cum urmează:

felină

Sunt o felină

sunt o pisica

După cum puteți vedea, am creat mai întâi o clasă numită pisică și apoi am creat un obiect cu numele „Tom”. Cele trei rezultate pe care le-am obținut au fost următoarele:

  • Feline – acesta a fost rezultatul declarației print(Tom.attr1). Deoarece Tom este un obiect al clasei Cat și attr1 a fost setat ca Feline, această funcție returnează ieșirea Feline.
  • eu sunt un felin – Tom.fun(); folosește obiectul numit Tom pentru a invoca o funcție din clasa pisici, cunoscută sub numele de „distracție”. Obiectul Tom aduce cu el atributele funcției și, prin urmare, funcția emite următoarele două propoziții – „Sunt un felin”.
  • Sunt o pisică – același motiv ca cel menționat mai sus.

Acum că înțelegeți cum funcționează clasele și obiectele în Python, să ne uităm la câteva metode esențiale.

2. Metoda Sinelui

Toate metodele definite în orice clasă trebuie să aibă un prim parametru suplimentar în definiția funcției. Acest parametru nu primește nicio valoare de către programator. Cu toate acestea, atunci când metoda este apelată, Python îi oferă o valoare.

Ca rezultat, dacă definiți o funcție fără argumente, din punct de vedere tehnic, aceasta are totuși un argument. Acest lucru se numește „sine” în Python. Pentru a înțelege mai bine acest lucru, vă puteți revizui conceptele de Pointeri în C++ sau le puteți face referire în Java. Metoda de sine funcționează în esență în același mod.

Pentru a înțelege mai bine acest lucru - atunci când numim orice metodă a unui obiect, de exemplu:

myObject.myMethod(arg1, arg2), Python îl convertește automat în myClass.myMethod(myObject, arg1, arg2).

Deci, vedeți, obiectul în sine devine primul argument al metodei. Despre asta este sinele în Python.

3. Metoda __init__

Această metodă este similară cu constructorii din Java sau C++. Ca și constructorii, metoda init este folosită pentru a inițializa starea unui obiect. Acesta conține o colecție de instrucțiuni (instrucțiuni) care sunt executate în momentul creării obiectului. Când un obiect este instanțiat pentru o clasă, metoda init va rula automat metodele inițializate de dvs.

Iată o bucată de cod pentru a explica asta mai bine:

# O clasă Sample cu metoda init

Persoana clasa:

# metoda init sau constructor

def __init__(self, name):

self.name = nume

# Metoda de probă

def say_hi(self):

print('Bună, mă numesc', self.name)

p = Persoană ("Sam")

p.say_hi()

Ieșire:

Bună numele meu este Sam

Învață cursuri de analiză a datelor online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Variabile de clasă și de instanță

Variabilele de instanță sunt unice pentru fiecare instanță, în timp ce variabilele de clasă sunt pentru metode și atribute partajate de toate instanțele unei clase. În consecință, variabilele de instanță sunt practic variabile a căror valoare este atribuită în interiorul unui constructor sau unei metode cu self. Pe de altă parte, variabilele de clasă sunt acelea ale căror valori sunt atribuite în cadrul unei clase.

Parcurgeți următorul cod pentru a înțelege cum sunt definite variabilele de instanță folosind un constructor (metoda init):

pisica de clasa:

# Variabilă de clasă

animal = 'pisica'

# Metoda sau constructorul init

def __init__(sine, rasă, culoare):

# Variabila de instanta

self.breed = rasă

self.color = culoare

# Obiecte din clasa Dog

Tom = pisica ("persan", "negru")

Zăpadă = pisică ("Indie", "albă")

print(„Detalii Tom:’)

print('Tom este un', Tom.animal)

print('Breed: ', Tom.breed)

print('Culoare: ', Tom.color)

print('\nDetalii cu zăpadă:')

print(„Zăpadul este un”, Snowy.animal)

print('Breed: ', Snowy.breed)

print('Culoare: ', Snowy.color)

Dacă urmați codul de mai sus linie cu linie, iată rezultatul pe care îl veți primi:

Ieșire:

Detalii despre Tom:

Tom este o pisică

Rasa: persană

Culoarea neagra

Detalii înzăpezite:

Snowy este o pisică

Rasa: Indie

Culoare albă

În concluzie

Python este un limbaj de programare relativ ușor, în special pentru începători. Odată ce ați stăpânit elementele de bază, veți fi gata să lucrați cu diferite biblioteci Python și să rezolvați probleme specifice datelor. Cu toate acestea, amintiți-vă că, în timp ce călătoria începe de la înțelegerea claselor și a obiectelor, trebuie să învățați și cum să lucrați cu diferite obiecte, clase și nuanțele acestora.

Sperăm că acest articol v-a ajutat la clarificarea îndoielilor despre clase și obiecte în Python. Dacă aveți întrebări, vă rugăm să ne lăsați un comentariu mai jos - vă vom răspunde în curând!

Dacă sunteți în căutarea unei schimbări în carieră și căutați ajutor profesional - upGrad este aici pentru dvs. Consultați programul nostru Executive PG în știința datelor oferit în colaborare cu IIIT-B . Familiarizați-vă cu peste 14 limbaje și instrumente de programare (inclusiv Python) și, de asemenea, obțineți acces la peste 30 de proiecte relevante pentru industrie. Studenții din orice flux se pot înscrie la acest program, cu condiția să obțină un punctaj de minim 50% la licență.

Avem o bază solidă de cursanți din peste 85 de țări, peste 40.000 de cursanți plătiți la nivel global și peste 500.000 de profesioniști care lucrează fericit. Asistența noastră de 360 ​​de grade în carieră, combinată cu expunerea studiului și brainstorming-ului cu studenții din întreaga lume, vă permite să profitați la maximum de experiența dvs. de învățare.

Ce sunt clasele și obiectele în Python?

O clasă este un șablon sau un plan care leagă proprietățile și funcțiile unei entități. În Python, cuvântul cheie clasă este folosit pentru a defini o clasă. Toate entitățile sau obiectele cu atribute similare pot fi puse într-o singură clasă și pot fi accesate de funcțiile membre.
Un obiect este o instanță a unei clase. Odată ce o clasă este creată, obiectele primesc toate informațiile acelei clase. Este la fel ca o copie a clasei respectate cu valorile reale. Un obiect este clasificat după trei factori:
A. Stat
b. Comportament
c. Identitate

Ce paradigmă de programare urmează Python?

Există patru paradigme majore care se pot distinge urmate de Python - orientate pe obiecte, procedurale, funcționale și imperative. Python suportă puternic concepte orientate pe obiecte; cu toate acestea, nu este un limbaj de programare pur orientat pe obiecte.
Motivul pentru care susține diverse paradigme de programare este că este influențat în mod semnificativ de unele scripturi precum CoffeeScript și limbaje de programare orientate pe obiecte precum Ruby. De asemenea, se combină cu limbaje precum R pentru a crește eficiența și puterea de calcul.
Fiind un limbaj cu mai multe paradigme, se crede că Python este unul dintre cele mai versatile limbi. Este utilizat pe scară largă pentru dezvoltare, analiza datelor, web scraping și automatizare.

Ce sunt modificatorii de acces în Python?

Similar cu alte limbaje de programare orientate pe obiecte, o clasă în Python are, de asemenea, trei modificatori de acces:
A. Modificator de acces public : membrii clasei specificați ca publici pot fi accesați direct de orice funcție, adică de funcții de membru, precum și de funcții non-membre. Dacă nu este specificat niciun specificator de acces, atunci toți membrii clasei sunt considerați membri publici în mod implicit de către compilator.
b. Modificator de acces privat : acești membri ai clasei sunt ascunși altor membri ai clasei. Ele pot fi accesate doar de funcțiile membre ale clasei în care sunt definite.
c. Modificator de acces protejat : membrii clasei care sunt specificați ca protejați pot fi accesați numai de funcțiile membre ale aceleiași clase și vor genera o eroare dacă se încearcă accesul în afara clasei. Singura diferență majoră între specificatorul de acces privat și protejat este că membrii protejați pot fi moșteniți, în timp ce membrii privați nu pot fi moșteniți.