Python OOP:er: Klass, objekt, arv och konstruktor
โก Smart sammanfattning
Objektorienterad programmering i Python organiserar kod kring klasser och objekt, och buntar samman relaterad data och beteende. Denna metod visar hur man definierar klasser, skapar objekt, tillรคmpar arv och initierar attribut med konstruktorer.

OOPs in Python
OOPs in Python รคr ett programmeringssรคtt som fokuserar pรฅ att anvรคnda objekt och klasser pรฅ samma sรคtt som andra allmรคnna programmeringssprรฅk. Objekten kan vara alla verkliga enheter. Python tillรฅter utvecklare att utveckla applikationer med hjรคlp av OOPs-metoden med stort fokus pรฅ kodรฅteranvรคndbarhet. Det รคr vรคldigt enkelt att skapa klasser och objekt i Python.
Vad รคr en klass?
En klass i Python รคr en logisk gruppping av data och funktioner. Det ger friheten att skapa datastrukturer som innehรฅller godtyckligt innehรฅll och dรคrmed รคr lรคttillgรคngliga.
Till exempel, fรถr alla bankanstรคllda som vill hรคmta kunduppgifterna online skulle gรฅ till kundklass, dรคr alla dess attribut som transaktionsdetaljer, uttags- och insรคttningsdetaljer, utestรฅende skuld etc. skulle listas.
Hur man definierar Python klasser
Fรถr att definiera klass mรฅste du รถvervรคga fรถljande punkter
Steg 1) In Python, klasser definieras av "Klass" sรถkord
class myClass():
Steg 2) Inuti klasser kan du definiera funktioner eller metoder som ingรฅr i denna klass
def method1 (self): print "Guru99" def method2 (self,someString): print "Software Testing:" + someString
- Hรคr har vi definierat metod1 som skriver ut โGuru99.โ
- En annan metod som vi har definierat รคr metod2 som skriver ut "Software Testing"+ SomeString. SomeString รคr variabeln som tillhandahรฅlls av anropsmetoden
Steg 3) Allt i en klass รคr indraget, precis som koden i funktionen, loopen, if-satsen, etc. Allt som inte รคr indraget finns inte i klassen
ANMรRKNINGAR: Om att anvรคnda "sjรคlv" i Python
- Sjรคlvargumentet refererar till sjรคlva objektet. Dรคrav anvรคndningen av ordet self. Sรฅ inom den hรคr metoden kommer self att referera till den specifika instansen av detta objekt som opereras pรฅ.
- Sjรคlv รคr namnet som fรถredras av konventionen Pythons fรถr att indikera den fรถrsta parametern av instansmetoder i Python. Det รคr en del av Python syntax fรถr att komma รฅt medlemmar av objekt
Steg 4) Att gรถra ett objekt av klassen
c = myClass()
Steg 5) Att anropa en metod i en klass
c.method1()
c.method2(" Testing is fun")
- Observera att nรคr vi anropar metod1 eller metod2 behรถver vi inte ange sjรคlvnyckelordet. Det hanteras automatiskt รฅt oss av Python kรถrning.
- Python runtime kommer att skicka "sjรคlv" vรคrde nรคr du anropar en instansmetod pรฅ i instans, oavsett om du tillhandahรฅller den avsiktligt eller inte
- Du mรฅste bara bry dig om icke-jag-argumenten
Steg 6) Hรคr รคr den fullstรคndiga koden
# Example file for working with classes
class myClass():
def method1(self):
print("Guru99")
def method2(self,someString):
print("Software Testing:" + someString)
def main():
# exercise the class methods
c = myClass ()
c.method1()
c.method2(" Testing is fun")
if __name__== "__main__":
main()
Hur arv fungerar
Arv รคr en funktion som anvรคnds i objektorienterad programmering; det hรคnvisar till att definiera en ny klass med mindre eller ingen modifiering av en befintlig klass. Den nya klassen heter hรคrledd klass och frรฅn en som den รคrver kallas den bas. Python stรถder arv; den stรถder ocksรฅ flera arv. En klass kan รคrva attribut och beteendemetoder frรฅn en annan klass som kallas underklass eller arvingsklass.
Python Arvssyntax
class DerivedClass(BaseClass):
body_of_derived_class
Steg 1) Kรถr fรถljande kod
# Example file for working with classes
class myClass():
def method1(self):
print("Guru99")
class childClass(myClass):
#def method1(self):
#myClass.method1(self);
#print ("childClass Method1")
def method2(self):
print("childClass method2")
def main():
# exercise the class methods
c2 = childClass()
c2.method1()
#c2.method2()
if __name__== "__main__":
main()
Observera att metod1 i childClass inte รคr definierad utan hรคrledd frรฅn den รถverordnade myClass. Utdata รคr โGuru99.โ
Steg 2) Avkommentera rad #8 & 10. Kรถr koden
Nu รคr metod 1 definierad i childClass och utgรฅngen "childClass Method1" visas korrekt.
Steg 3) Avkommentera rad #9. Kรถr koden
Du kan anropa en metod fรถr den รถverordnade klassen med hjรคlp av syntaxen
ParentClassName.MethodName(self)
I vรฅrt fall anropar vi myClass.method1(self) och Guru99 รคr utskrivet som fรถrvรคntat
steg 4) Avkommentar rad #19. Kรถr koden.
Metod 2 fรถr barnklassen anropas och "childClass method2" skrivs ut som fรถrvรคntat.
Python konstruktรถrer
En konstruktor รคr en klassfunktion som instansierar ett objekt till fรถrdefinierade vรคrden.
Den bรถrjar med ett dubbelt understreck (_). Den anvรคnder __init__()-metoden.
I exemplet nedan tar vi namnet pรฅ anvรคndaren som anvรคnder konstruktorn.
class User:
name = ""
def __init__(self, name):
self.name = name
def sayHello(self):
print("Welcome to Guru99, " + self.name)
User1 = User("Alex")
User1.sayHello()
Produktionen kommer att vara:
Vรคlkommen till Guru99, Alex
Python 2 Exempel
Ovanstรฅende koder รคr Python 3 exempel, om du vill springa in Python 2 รถvervรคg fรถljande kod.
# How to define Python classes
# Example file for working with classes
class myClass():
def method1(self):
print "Guru99"
def method2(self,someString):
print "Software Testing:" + someString
def main():
# exercise the class methods
c = myClass ()
c.method1()
c.method2(" Testing is fun")
if __name__== "__main__":
main()
#How Inheritance works
# Example file for working with classes
class myClass():
def method1(self):
print "Guru99"
class childClass(myClass):
#def method1(self):
#myClass.method1(self);
#print "childClass Method1"
def method2(self):
print "childClass method2"
def main():
# exercise the class methods
c2 = childClass()
c2.method1()
#c2.method2()
if __name__== "__main__":
main()
Lรคr dig vรฅr nรคsta handledning om Polymorfism i Python


