Nyheter i Android, Telefoner, Prylar Och Recensioner

Hur man använder objektorienterad programmering i Python

Objektorienterad programmering (OOP) är en form av programmering centrerad kring objekt: små enheter som kombinerar data och kod. Simula var det första OOP-språket som skapades för simulering av fysiska modeller. Med OOP kan du definiera klasser som fungerar som mallar för objekt av specifika typer.

Kärnelementen i OOP är klasser, objekt, metoder och attribut. OOP använder dessa element för att uppnå grundläggande mål: inkapsling, abstraktion, arv och polymorfism.

Python har utmärkt stöd för objektorienterad programmering. Om du undrar över OOP eller hur man använder det i Python, läs vidare för detaljer.

Vad är objektorienterad programmering i Python?

Python är ett allmänt programmeringsspråk som stöder objektorienterad programmering. Dess centrala infrastruktur syftar till objekt- och klassbyggande applikationer eller design. Att använda OOP gör Python-koden renare och tydligare. Det ger också enklare underhåll och kodåteranvändning.

Här är ett exempel som visar varför du ska använda OOP i Python.

jeans = [30, true, "Denim", 59]

I det här exemplet innehåller jeans en lista med värden som representerar priset, om varan är på rea, dess material och kostnad. Detta är en icke-OOP-metod och orsakar vissa problem. Det finns till exempel ingen förklaring till det jeans[0] avser storlek. Detta är mycket ointuitivt jämfört med en OOP-metod som skulle hänvisa till ett namngivet fält: jeans.stl.

Den här exempelkoden är inte särskilt återanvändbar eftersom beteendet den förlitar sig på inte går att upptäcka. Med OOP kan du skapa en klass för att undvika detta problem.

Hur man definierar en klass i Python

För att skapa en klass i Python, använd nyckelordet “klass” följt av ditt valda namn. Här är ett exempel som definierar en klass med namnet Min klass.

class MyClass:
x = 2

p1 = MyClass()
print(p1.x)

Låt oss definiera en klass, Flämta, för att representera olika typer av byxor. Den här klassen kommer att innehålla storlek, reastatus, material och pris. Som standard initieras dessa värden till Ingen.

class Pant:
# Define the properties and assign None value
size = None
onsale = None
material = None
price = None

Hur man skapar ett objekt i Python

Låt oss nu initiera ett objekt från klassen Pant. Först kommer vi att definiera initialiseringsmetoden som har det fördefinierade namnet _i det_. När du väl har definierat det kommer Python automatiskt att anropa den här metoden när du skapar ett objekt från den klassen.

Relaterad  Hur man lägger till musik till en video på din dator

För det andra kommer en viss självparameter att tillåta initialiseringsmetoden att välja ett nytt objekt.

Slutligen, efter att ha definierat initialiseraren, skapar vi ett objekt med namnet jeans, använda [objectName] = Pant() syntax.

class Pant:
# Define the initializer method
def __init__(self, size, onsale, material, price):
self.size = size
self.onsale = onsale
self.material = material
self.price = price

# Create an object of the Pant class and set each property to an appropriate value
jeans = Pant(11, False, "Denim", 81)

Använd attribut och metoder för att definiera egenskaper och beteenden

Objekt i Python kan använda två olika typer av attribut: klassattribut och instansattribut.

Klassattribut är variabler eller metoder som alla objekt i den klassen delar. Däremot är instansattribut variabler som är unika för varje objekt – instansen av en klass.

Låt oss skapa en instansmetod för att interagera med objektegenskaper.

class Pant:
# Define the initializer method
def __init__(self, size, onsale, material, price):
self.size = size
self.onsale = onsale
self.material = material
self.price = price

# Instance method
def printinfo (self):
return f"This pair of pants is size {self.size}, made of {self.material}, and costs {self.price}"

# Instance method
def putonsale (self):
self.onsale = True

jeans = Pant(11, False, "Denim", 81)
print(jeans.printinfo())
jeans.putonsale()
print(jeans.onsale)

Här, den första metoden, printinfo(), använder alla egenskaper utom till salu. Den andra metoden, putonsale(), ställer in värdet på till salu fast egendom. Notera hur båda dessa instansmetoder använder nyckelordet själv. Detta hänvisar till det specifika objektet (eller instansen) som används för att anropa metoden.

När vi ringer putonsale(), använder den här metoden själv parameter för att ändra värdet på det specifika objektet. Om du hade skapat en annan instans av Flämta—leggings, till exempel — det här samtalet skulle inte påverka det. En instansegenskap för ett objekt är oberoende av alla andra.

Relaterad  5 regler för den nya powerdressingen

Hur man använder arv i Python

Du kan utöka exemplet ovan genom att lägga till en underkategori av Flämta klass. I objektorienterad programmering är detta känt som arv. Att expandera klassen kommer att definiera extra egenskaper eller metoder som inte finns i den överordnade klassen.

Låt oss definiera Leggings som en underklass och ärva den från Flämta.

# Leggings is the child class to parent class Pant 
class Leggings(Pant):
def __init__(self, size, onsale, material, price, elasticity):
# Inherit self, size, onsale, material, and price properties
Pant.__init__(self, size, onsale, material, price)

# Expand leggings to contain extra property, elasticity
self.elasticity = elasticity

# Override printinfo to reference "pair of leggings" rather than "pants"
def printinfo(self):
return f"This pair of leggings is size {self.size}, made of {self.material}, and costs {self.price}"

leggings = Leggings(11, False, "Leather", 42, True)
print(leggings.printinfo())

Den nya initialiseringsmetoden tar alla samma egenskaper som Pant-klassen och lägger till en unik elasticitetsegenskap. Du kan utöka en klass för att återanvända befintlig funktionalitet och minska kodlängden. Om din Leggings-klass inte ärvde från Pant-klassen, skulle du behöva reproducera befintlig kod, bara för en liten förändring. Du kommer att märka dessa fördelar mer när du arbetar med större och mer komplicerade klasser.

Kontrollera om ett objekt ärver från en klass med isinstance()

De isinstance() funktion kontrollerar om ett objekt är en instans av en specifik klass eller någon av dess förfaderklasser. Om objektet är av den givna typen, eller en typ som ärver från det, returnerar funktionen True. Annars kommer den att returnera False.

# Dummy base class 
class Pant:
None

# Dummy subclass that inherits from Pant
class Leggings(Pant):
None

pants = Pant()
leggings = Leggings()

print(isinstance(leggings, Pant))
print(isinstance(pants, Leggings))

Observera att Python anser att damasker objekt, av typen Leggings, en instans av Pant, moderklassen för Leggings. Men a byxor objekt är inte en instans av klassen Leggings.

Relaterad  5 av de bästa Mac-kalenderapparna och tilläggen

Python är den perfekta introduktionen till OOP

Python har vunnit popularitet på grund av dess enkla och lättförståeliga syntax jämfört med andra programmeringsspråk. Språket designades kring objektorienterad programmering, så det är ett utmärkt verktyg för att lära sig paradigmet. De flesta stora teknikföretag använder Python någon gång i sin teknikstack, och utsikterna ser bra ut för Python-programmerare.

Om du ser fram emot att göra karriär inom utvecklingssektorn är Python ett utmärkt ställe att börja. Se till att du har en gedigen förståelse för de grundläggande principerna – objektorienterad programmering är bara början!

Om författaren

Zadhid Powell (29 publicerade artiklar)

Zadhid Powell är en CSE-examen som gav upp kodning för att börja skriva! Tillsammans med en digital marknadsförare, Fintech-entusiast, SaaS-expert, läsare och angelägen följare av mjukvarutrender. Ofta kan du hitta honom rocka klubbar i centrum med sin gitarr eller inspektera havsbottendykning.

Mer från Zadhid Powell

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera