Python - Objekter

Innholdsfortegnelse
I Objektorientert programmering, objekter er abstrakte representasjoner av elementer, som vi definerer gjennom deres attributter og som har en rekke metoder som lar oss manipulere og ha tilgang til disse attributtene.
eksistere 3 funksjoner som gir oss grunnen til å bruke våre egne objekter i stedet for å avhenge av funksjonene, bibliotekene og globaler som språket gjør tilgjengelig for oss, er disse:
  • Polymorfisme: bruk av de samme operasjonene på forskjellige objekter av forskjellige klasser.
  • Innkapsling: skjule attributtene for enheter utenfor objektet, slik at det kan beskytte dem.
  • Arv- Lag mer spesifikke objekter som arver de grunnleggende attributtene og metodene til en mer generell høyere klasse.

Dette begrepet betyr at det har mange former, dette betyr at vi kan utføre operasjoner som vil fungere annerledes avhengig av objektets type eller klasse. La oss ta et enkelt eksempel, la oss forestille oss at vi har en handlevogn, så definerer vi hvordan vi vil at prisdata og ønsket produkt skal oppnås, slik vi ser på bildet nedenfor at vi lager en tupel.

Hva ville skje hvis funksjonaliteten til handlekurven utvides og nå jobber vi med auksjoner, på en eller annen måte bør vi spesifisere verdiene som må mottas og hvordan vi skal handle når vi bruker de samme metodene, slik mange tror er å gjøre en funksjon av følgende skjema, men er ikke hensiktsmessig.

Som vi kan se på bildet, dekker vi øyeblikkets muligheter, men hva som skjer når funksjonaliteten økes, må vi fortsette å oppdatere denne koden for alltid, det er der polymorfismen kommer inn, og det vi gjør er å definere at hver objekt returnerer prisen uavhengig av hvordan den beregnes siden det er noe internt i hver klasse, som vil være som følger:

Vi kan da se at det er noe som hjelper oss med å ha en kode som er mer holdbar over tid, lettere å vedlikeholde.
Dette består av å skjule de interne detaljene i klassen for omverdenen, slik at den bare kan nås av sine egne objekter og metoder, på denne måten kan vi jobbe med klasser uten å måtte kjenne deres interne arbeid, eliminere implementeringskompleksitet og beskytte logikken i objektene våre.
Det tillater oss også arbeide med forsikring om at dataene i objektet vårt ikke vil bli endret, siden hvis de fungerer på en abstrakt måte, vil vi kunne instantere flere ganger, og hver forekomst er totalt individuell.
La oss se på et eksempel på et objekt som ikke er innkapslet:

Her ser vi det selv om det var det o1 som laget et sett med navnet, o2 få tilgang til samme navn uten å ha angitt det, dette i en applikasjon ville være problematisk, la oss forestille oss at vi trenger prisen på flere produkter, og hver overskriver prisen på den forrige.
Nå med en innkapsling, la oss se på hvordan hele flyten av programmet ville fungere.

Her ser vi at hvert objekt beholder navnet sitt, så vi vet at vi kan jobbe trygt ved å skaffe de riktige verdiene for hvert av objektene våre.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave