0% au considerat acest document util (0 voturi)
4 vizualizări8 pagini

Oops În Python

Programarea orientată pe obiecte (OOP) în Python permite crearea de programe prin utilizarea obiectelor și claselor, legând datele de funcțiile aferente. Principiile OOP includ clase, obiecte, polimorfism, încapsulare, moștenire și abstractizare, fiecare având roluri specifice în structura și comportamentul programelor. Python oferă suport extins pentru aceste principii, facilitând dezvoltarea de cod modular și organizat.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
4 vizualizări8 pagini

Oops În Python

Programarea orientată pe obiecte (OOP) în Python permite crearea de programe prin utilizarea obiectelor și claselor, legând datele de funcțiile aferente. Principiile OOP includ clase, obiecte, polimorfism, încapsulare, moștenire și abstractizare, fiecare având roluri specifice în structura și comportamentul programelor. Python oferă suport extins pentru aceste principii, facilitând dezvoltarea de cod modular și organizat.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

OOP în PYTHON:

Programarea orientată pe obiecte (OOP în Python) ne permite să proiectăm


programe care folosesc obiecte ș i clase. Acest principiu leagă datele ș i
funcț iile aferente. C++, C#, Python ș i Java sunt unele dintre
Limbaje OOP. În acest articol, vom analiza
Principiile OOP cu exemple de cod.

Principles of OOP

Clasă

Obiecte

Polimorfism

Încapsulare

Moș tenire

Abstracț ia datelor

Clasă

În Python, o clasă este un model pentru crearea de obiecte. O clasă defineș te


atributele ș i metodele obiectelor sale. O clasă defineș te ce este un
obiectul acelei clase va arăta ș i cum se va comporta.

Ce este un obiect?
Un obiect este o instanț ă a unei clase. Reprezintă un element specific care este
creat pe baza definiț iei clasei. Un obiect are propria sa unicitate
identitate, stat ș i comportament.

Folosimclasăcuvânt cheie pentru crearea unei clase

clasa Persoană:
Alte linii

Constructor ș i sine

__init__este o metodă specială. Este cunoscută ș i sub denumirea de constructor al

clasa, care este apelată automat atunci când un obiect al clasei este
creat. Este folosit pentru a iniț ializa atributele obiectului ș i necesare
configurări.

The__init__ metoda necesită de obicei cel puț in un parametru, care


estesinSe referă la instanț a obiectului care este creată.

clasa Persoană:
def __init__(self, nume, varsta):
Initializing atributele
[Link] = nume
[Link] = age

Crearea obiectului

Pentru a crea obiecte, trebuie să apelăm constructorul, care


este__init__ metodă.

Prin apelareNumeleClasei()ca metodă, care estePersoanăîn acest caz. Aș adar, prin


făcând asta, chemăm__init__ metoda dePersoanăclasă.
Crearea a două obiecte unice
person1 = Person("John",25)
person2 = Person("Alice",30)

Metode
Metodele sunt funcț ii care sunt definite în interiorul unei clase ș i sunt apelate
pe obiectele acelei clase.

Ei au acces la atributele obiectului ș i le pot modifica.

Primul parametru al unei metode este de obicei numitauto. A suna un


metodă, foloseș ti notaț ia cu punct, specificând obiectul urmat de
denumire metodă.

clasă Persoană:
def __init__(self, nume, varsta):
Iniț ializarea atributelor
[Link] = name
[Link] = age

def obtine_info():
Metodă
print("Nume:", nume, " Vârstă:", vârstă)

Crearea unui obiect unic


person1 = Person("John",25)

Apelarea unei metode cu o notare


person1.get_info()

Metode de Clasă

Metodele de clasă sunt definite folosind@classmethoddecorator ș i sunt


legat de clasă mai degrabă decât de instanț a clasei.
Au acces la variabilele de clasă ș i efectuează acț iuni legate de acestea.
la clase mai degrabă decât la obiecte individuale. (Pentru a defini un nivel de clasă

variabilă, trebuie să o plasezi direct sub declaraț ia clasei.)

Primul parametru al unei metode de clasă este de obicei numit,clscare


se referă la clasa în sine.

Pentru a apela o metodă a unei clase în Python, foloseș ti numele clasei urmat de
numele metodei în notaț ie punctată.

Puteț i găsi mai multe informaț ii despre decoratori în aceasta


articol.

clasa Cerc:
variabile la nivel de clasă
pi = 3.14

def __init__(self, rază):


[Link] = rază

def calculează_aria(self):
întoarce [Link] * [Link] * [Link]

@classmethod
def schimbare_pi(cls, nou_pi):
[Link] = noul_pi

Crearea obiectelor Cerc


circle1 = Circle(5)
circle2 = Circle(10)

Apelarea unei metode de instanț ă


area1 = circle1.calculate_area()
print (arean1)# Ieș ire: 78.5

Apelând o metodă de clasă


Cerc.schimba_pi(3.14159)
aria2 = cerc2.calculeaza_aria()
print(area2) # Ieș ire: 314.159

Metode Statice
Metodele statice sunt definite folosind@staticmethoddecorator ș i sunt
nu este legat de clasă, ci mai degrabă de instanț a clasei.

Ei nu au acces la atributele obiectului sau la nivelul clasei


variabilele, deoarece sunt independente de starea clasei.

Metodele statice sunt de obicei utilizate pentru funcț ii sau operaț iuni de utilitate.

care nu depind de contextul clasei sau al instanț ei.

Ele sunt similare cu funcț iile obiș nuite. Dar sunt plasate în interiorul unui
clasă pentru scopuri organizaț ionale.

Puteț i găsi mai multe informaț ii despre decoratori în aceasta


articol.

class MathUtils:
@staticmethod
def patrat(x):
return x * x

@staticmethod
def cub(x):
return x * x * x

Apelarea metodelor statice direct


result1 = [Link](5)
print(result1)# Output: 25

result2 = [Link](3)
print(result2)# Ieș ire: 27

Metodele statice pot fi accesate direct din clasă folosind


notaț ie cu puncte.

Polimorfism
Polimorfismul permite tratamentul obiectelor de tipuri diferite ca
obiecte ale unei superclase comune. Subclasele au acces la toate
metode ș i atribute.

clasa Persoană:
def __init__(self, nume):
[Link] = name

def obtine_detalii(self):
return f"Nume: {[Link]}"

clasă Angajator(Persoană):
def __init__(self, nume, companie):
super().__init__(nume)
[Link] = company

def obtine_detalii(self):
întoarce Nume: {[Link]}, Companie: {[Link]}

Crearea de obiecte din clase diferite


person = Person("John")
employer = employer ("Alice,"XYZ Corp")

Apelarea funcț iei cu diferite obiecte


person.get_details() Output: Name: John
employer.get_details() # Output: Name: Alice, Company: XYZ Corp

În acest exemplu, subclasăPersoanăeste superclasa


alAngajatorsubclasă.Employer clasa are acces la atribute
dePersoanăclasa ș i metodele sale.

De asemenea, după cum vezi,get_details()metoda este suprascrisă, care

înseamnă că este redefinit în subclasă.

Încapsulare

Încapsularea ajută la protejarea datelor de accesul neautorizat ș i


asigură întreț inerea adecvată.
Câteva modificatori de acces comune utilizate în Python:

Public: Membru public (atribute ș i metode) sunt


accesibil de oriunde, atât din interior, cât ș i din exterior
clasă.

Privat: Membrii privaț i sunt denumiț i folosind dublu


subsoluri (__) ca un prefix înaintea atributului sau metodei
nume. Acestea pot fi accesate doar în interiorul clasei, nu
din afara clasei.

Protejat: Membrii protejaț i sunt denumiț i folosind un


underscore simplu (_) ca un prefix înainte de atribut sau
numele metodei. Acestea pot fi accesate în cadrul clasei ș i al său
subclase (clase derivate), dar nu din afara clasei
ierarhie.

Membrii normali privaț i ș i protejaț i sunt accesibili din exterior


clasa. Dar ne aș teptăm ca utilizatorii să nu intervenă în acestea
membri.

clasă ContBancar:
def __init__(self, număr_cont, sold):
self.account_number = account_number
self.__balance = balanta # Atribut privat

def obț ine_sold(self):


returnează self.__balance

def depozit(self, suma):


self.__balance += suma

def retrage(self, suma):


dacă self.__balance >= sumă:
self.__balance -= sumă
altfel:
Sold insuficient.

Crearea unui obiect BankAccount


account = BankAccount("123456789",1000)

Accesarea atributelor ș i apelarea metodelor


print(account.get_balance())# Ieș ire: 1000
[Link](500)
print(acount.get_balance())# Iesire: 1500
[Link](2000) Output: Insufficient balance

Concluzie
În cele din urmă, Programarea Orientată pe Obiecte (OOP) este un Paradigmă puternică

care permite dezvoltatorilor să creeze ș i să aranjeze codul într-un mod mai

modular ș i ordonat. Python, ca un limbaj orientat pe obiecte


limbajul, oferă suport extins pentru principiile OOP.

S-ar putea să vă placă și