python oops concepts python classes
OOPs-konsepter i Python: Python-klasser og objekter, arv, overbelastning, overstyring og skjuling av data
I forrige opplæring vi noen av Inngang / utgang som Python gir.
Vi ble kjent med hvordan vi bruker disse funksjonene til å lese dataene fra brukeren eller fra de eksterne kildene, og også hvordan vi skriver disse dataene i eksterne kilder. Vi lærte også hvordan vi kan dele en enorm kode i mindre metoder ved hjelp av funksjoner og hvordan vi kan ringe eller få tilgang til dem.
Videre lesing => Eksplisitt utvalg av gratis opplæringsveiledninger for Python
I denne opplæringen vil vi diskutere Advanced Python-konseptet kalt OOP og forskjellige typer oops-konsepter som er tilgjengelige i Python og hvordan og hvor de skal brukes.
Hva du vil lære:
- Se VIDEO-veiledningene
- Klasser og gjenstander
- Konstruktør i Python
- Arv
- Metodeoverbelastning i Python
- Metodeoverstyring i Python
- Data gjemmer seg i Python
- Konklusjon
- Anbefalt lesing
Se VIDEO-veiledningene
Video nr. 1: Klasse, objekter og konstruktør i Python
Video nr. 2: Begrepet arv i Python
Video nr. 3: Overbelastning, overstyring og dataskjuling i Python
Klasser og gjenstander
- Python er et objektorientert programmeringsspråk der programmering vektlegger mer på objekter.
- Nesten alt i Python er gjenstander.
Klasser
Class in Python er en samling objekter, vi kan tenke på en klasse som en tegning eller skisse eller prototype. Den inneholder alle detaljene til et objekt.
I virkelighetseksemplet er Animal en klasse, fordi vi har forskjellige slags dyr i verden, og alle disse tilhører en klasse som heter Animal.
Definere en klasse
I Python bør vi definere en klasse ved hjelp av nøkkelordet ‘klasse’.
Syntaks:
hvordan du åpner .bin filer
class classname: #Collection of statements or functions or classes
Eksempel:
class MyClass: a = 10 b = 20 def add(): sum = a+b print(sum)
I eksemplet ovenfor har vi erklært klassen kalt ‘Myclass’, og vi har deklarert og definert henholdsvis noen variabler og funksjoner.
For å få tilgang til funksjonene eller variablene som er tilstede i klassen, kan vi bruke klassens navn ved å lage et objekt av det.
La oss først se hvordan du får tilgang til de som bruker kursnavnet.
Eksempel:
class MyClass: a = 10 b = 20 #Accessing variable present inside MyClass print(MyClass.a)
Produksjon
10
Produksjon:
Objekter
Et objekt er vanligvis en forekomst av en klasse. Den brukes til å få tilgang til alt som er tilstede i klassen.
Lage et objekt
Syntaks:
variablename = classname
Eksempel:
ob = MyClass()
Dette vil opprette et nytt instansobjekt som heter 'ob'. Ved å bruke dette objektnavnet kan vi få tilgang til alle attributtene som er tilstede i klassen MyClass.
Eksempel:
class MyClass: a = 10 b = 20 def add(self): sum = self.a + self.b print(sum) #Creating an object of class MyClass ob = MyClass() #Accessing function and variables present inside MyClass using the object print(ob.a) print(ob.b) ob.add()
Produksjon:
10
tjue
30
Produksjon:
Konstruktør i Python
Constructor in Python er en spesiell metode som brukes til å initialisere medlemmene i en klasse i løpet av kjøretiden når et objekt blir opprettet.
I Python har vi noen spesielle innebygde klassemetoder som starter med dobbelt understreking (__), og de har en spesiell betydning i Python.
Navnet på konstruktøren vil alltid være __init __ ().
Hver klasse må ha en konstruktør, selv om du ikke oppretter en konstruktør eksplisitt, vil den opprette en standardkonstruktør av seg selv.
Eksempel:
class MyClass: sum = 0 def __init__ (self, a, b): self.sum = a+b def printSum(self): print(“Sum of a and b is: ”, self.sum) #Creating an object of class MyClass ob = MyClass(12, 15) ob.printSum()
Produksjon:
Summen av a og b er: 27
Produksjon:
Hvis vi observerer i eksemplet ovenfor, kaller vi ikke metoden __init __ (), fordi den blir kalt automatisk når vi oppretter et objekt til den klassen og initialiserer dataelementene, hvis noen.
Husk alltid at en konstruktør aldri vil returnere noen verdier, og den inneholder derfor ingen returuttalelser.
Arv
Arv er et av de kraftigste begrepene i OOP.
En klasse som arver egenskapene til en annen klasse kalles Arv.
Klassen som arver egenskapene kalles underklasse / underklasse og klassen som eiendommer arves fra kalles overordnet klasse / baseklasse.
Python gir tre typer arv:
- Enkeltarv
- Multilevel Arv
- Flere arv
Anbefalt lesing = >> Arv i Java
# 1) Enkelt arv
I enkelt arv vil en klasse bare arve egenskapene til en klasse.
Eksempel:
class Operations: a = 10 b = 20 def add(self): sum = self.a + self.b print(“Sum of a and b is: “, sum) class MyClass(Operations): c = 50 d = 10 def sub(self): sub = self.c – self.d print(“Subtraction of c and d is: ”, sub) ob = MyClass() ob.add() ob.sub()
Produksjon:
Summen av a og b er: 30
Subtraksjon av c og d er: 40
Produksjon:
hva er sikkerhetsnøkkelen til internett
I eksemplet ovenfor arver vi egenskapene til 'Operations' -klassen til klassen 'MyClass'.
Derfor kan vi få tilgang til alle metodene eller utsagnene som er tilstede i klassen ‘Operasjoner’ ved å bruke MyClass-objektene.
# 2) Arv på flere nivåer
I arv på flere nivåer fungerer en eller flere klasser som en basisklasse.
Noe som betyr at den andre klassen vil arve egenskapene til den første klassen og den tredje klassen vil arve egenskapene til den andre klassen. Så andre klasse vil fungere som både foreldreklassen og barneklassen.
Eksempel:
class Addition: a = 10 b = 20 def add(self): sum = self.a + self.b print(“Sum of a and b is: ”, sum) class Subtraction(Addition): def sub(self): sub = self.b-self.a print(“Subtraction of a and b is: ”, sub) class Multiplication(Subtraction): def mul(self): multi = self.a * self.b print(“Multiplication of a and b is: ”, multi) ob = Multiplication () ob.add() ob.sub() ob.mul()
Produksjon:
Summen av a og b er: 30
Subtraksjon av a og b er: 10
Multiplikasjon av a og b er: 200
Produksjon:
I eksemplet ovenfor arver klasse ‘Subtraksjon’ egenskapene til klassen ‘Addisjon’ og klasse ‘Multiplikasjon’ vil arve egenskapene til klassen ‘Subtraksjon’. Så klasse ‘Subtraksjon’ vil fungere som både baseklasse og avledet klasse.
# 3) Flere arv
Klassen som arver egenskapene til flere klasser kalles Multiple Arv.
Videre lesing = >> Støtter Java flere arv?
Eksempel:
class Addition: a = 10 b = 20 def add(self): sum = self. a+ self.b print(“Sum of a and b is: “, sum) class Subtraction(): c = 50 d = 10 def sub(self): sub = self.c-self.d print(“Subtraction of c and d is: ”, sub) class Multiplication(Addition,Subtraction): def mul(self): multi = self.a * self.c print(“Multiplication of a and c is: ”, multi) ob = Multiplication () ob.add() ob.sub() ob.mul()
Produksjon:
Summen av a og b er: 30
Subtraksjon av c og d er: 10
Multiplikasjon av a og c er: 500
c ++ innføringssorteringsalgoritme
Produksjon:
Metodeoverbelastning i Python
Flere metoder med samme navn, men med en annen type parameter eller et annet antall parametere kalles Method overloading
Eksempel:
def product(a, b): p = a*b print(p) def product(a, b, c): p = a*b*c print(p) #Gives you an error saying one more argument is missing as it updated to the second function #product(2, 3) product(2, 3, 5)
Produksjon:
30
Produksjon:
Produksjon:
Metodeoverbelastning støttes ikke i Python, for hvis vi ser i eksemplet ovenfor har vi definert to funksjoner med samme navn ‘produkt’, men med et annet antall parametere.
Men i Python vil den sist definerte oppdateres, derav vil funksjonsproduktet (a, b) bli ubrukelig.
Metodeoverstyring i Python
Hvis en underklassemetode har samme navn som er deklarert i superklassemetoden, kalles den Method overriding
For å oppnå metodeoverstyring må vi bruke arv.
Eksempel:
class A: def sayHi(): print(“I am in A”) class B(A): def sayHi(): print(“I am in B”) ob = B() ob.sayHi()
Produksjon:
Jeg er i B.
Produksjon:
Data gjemmer seg i Python
Data skjule betyr å gjøre dataene private slik at de ikke blir tilgjengelige for de andre klassemedlemmene. Den er kun tilgjengelig i klassen der den er erklært.
I python, hvis vi vil skjule variabelen, må vi skrive dobbelt understreking (__) før variabelnavnet.
Eksempel:
Class MyClass: __num = 10 def add(self, a): sum = self.__num + a print(sum) ob = MyClass() ob.add(20) print(ob.__num) #The above statement gives an error because we are trying to access private variable outside the class
Produksjon:
30
Sporing (siste samtale sist):
Fil 'DataHiding.py', linje 10, i
utskrift (enten forfall .__)
AttributeError: MyClass-forekomst har
ingen attributt ‘__num
Produksjon:
Konklusjon
Klassen er en blåkopi eller mal som inneholder alle detaljene til et objekt, der objektet er en forekomst av en klasse.
- Hvis vi ønsker å få egenskapene til en annen klasse til en klasse, kan dette oppnås ved arv.
- Arv er av tre typer - Single Arv, Multilevel Arv og Flere arv.
- Metodeoverbelastning støttes ikke i Python.
- Metodeoverstyring brukes til å overstyre implementeringen av den samme funksjonen som er definert i en annen klasse.
- Vi kan gjøre dataattributtene som private eller skjule dem slik at de ikke blir tilgjengelige utenfor klassen der den er definert.
Vår kommende veiledning vil forklare mer om tilleggspython-konsepter i detalj !!
PREV Opplæring | NESTE veiledning
Anbefalt lesing
- Python-variabler
- Python DateTime Tutorial med eksempler
- Python-strengfunksjoner
- Python-opplæring for nybegynnere (praktisk GRATIS Python-trening)
- Uttalelser om Python-kontroll (Python fortsetter, bryter og passerer)
- Python-operatører
- Python-funksjoner
- Python Introduksjon og installasjonsprosess