Objektorienterad programmering är ett grundläggande koncept i Python, som ger utvecklare möjlighet att bygga modulära, underhållsbara och skalbara applikationer. Genom att förstå de centrala OOP-principerna – klasser, objekt, arv, inkapsling, polymorfism och abstraktion – kan programmerare utnyttja den fulla potentialen hos Pythons OOP-kapacitet för att designa eleganta och effektiva lösningar på komplexa problem.
Vad är objektorienterad programmering i Python?
I Python är objektorienterad programmering (OOPs) ett programmeringsparadigm som använder objekt och klasser i programmering. Det syftar till att implementera verkliga enheter som arv, polymorfismer, inkapsling, etc. i programmeringen. Huvudkonceptet för objektorienterad programmering (OOPs) eller oops-koncept i Python är att binda data och funktioner som fungerar tillsammans som en enda enhet så att ingen annan del av koden kan komma åt denna data.
OOPs-koncept i Python
- Klass i Python
- Objekt i Python
- Polymorfism i Python
- Inkapsling i Python
- Arv i Python
- Dataabstraktion i Python

Python OOPs koncept
base64 javascript avkodning
Python klass
En klass är en samling objekt. En klass innehåller ritningarna eller prototypen från vilken objekten skapas. Det är en logisk enhet som innehåller några attribut och metoder.
För att förstå behovet av att skapa en klass, låt oss ta ett exempel, låt oss säga att du ville spåra antalet hundar som kan ha olika egenskaper som ras och ålder. Om en lista används kan det första elementet vara hundens ras medan det andra elementet kan representera dess ålder. Låt oss anta att det finns 100 olika hundar, hur skulle du då veta vilket element som ska vara vilket? Tänk om du ville lägga till andra egenskaper till dessa hundar? Detta saknar organisation och det är det exakta behovet av klasser.
Några punkter om Python-klassen:
- Klasser skapas av nyckelordsklass.
- Attribut är de variabler som tillhör en klass.
- Attributen är alltid offentliga och kan nås med operatorn punkt (.). T.ex.: Myclass.Myattribute
Klassdefinitionssyntax:
class ClassName: # Statement-1 . . . # Statement-N>
Skapa en tom klass i Python
I exemplet ovan har vi skapat en klass som heter Hund med hjälp av nyckelordet klass.
Pytonorm
# Python3 program to # demonstrate defining # a class class Dog: pass>
Python-objekt
I objektorienterad programmering Python är objektet en enhet som har ett tillstånd och ett beteende associerat med sig. Det kan vara vilket verkligt objekt som helst som en mus, tangentbord, stol, bord, penna, etc. Heltal, strängar, flyttal, till och med matriser och ordböcker, är alla objekt. Mer specifikt är vilket enstaka heltal eller vilken enskild sträng som helst ett objekt. Siffran 12 är ett objekt, strängen Hej, världen är ett objekt, en lista är ett objekt som kan hålla andra objekt, och så vidare. Du har använt objekt hela tiden och kanske inte ens inser det.
Ett objekt består av:
- Stat: Det representeras av ett objekts attribut. Det återspeglar också egenskaperna hos ett objekt.
- Beteende: Det representeras av ett objekts metoder. Det återspeglar också ett objekts svar på andra objekt.
- Identitet: Det ger ett unikt namn till ett objekt och gör det möjligt för ett objekt att interagera med andra objekt.
För att förstå tillståndet, beteendet och identiteten låt oss ta exemplet med klasshunden (förklarat ovan).
- Identiteten kan betraktas som namnet på hunden.
- Tillstånd eller attribut kan betraktas som hundens ras, ålder eller färg.
- Beteendet kan övervägas om hunden äter eller sover.
Skapa ett objekt
Detta kommer att skapa ett objekt med namnet obj av klassen Dog definierad ovan. Innan vi dyker djupt in i objekt och klasser, låt oss förstå några grundläggande nyckelord som kommer att användas när du arbetar med objekt och klasser.
Python3 obj = Dog()>
Python-jaget
- Klassmetoder måste ha en extra första parameter i metoddefinitionen. Vi ger inget värde för denna parameter när vi anropar metoden, Python tillhandahåller den
- Om vi har en metod som inte tar några argument, måste vi fortfarande ha ett argument.
- Detta liknar denna pekare i C++ och denna referens i Java.
När vi kallar en metod för detta objekt som myobject.method(arg1, arg2), omvandlas denna automatiskt av Python till MyClass.method(myobject, arg1, arg2) – det är allt det speciella jaget handlar om.
Notera: För mer information, se själv i Python-klassen
Python __init__-metoden
De __init__ metod liknar konstruktörer i C++ och Java. Den körs så snart ett objekt i en klass instansieras. Metoden är användbar för att göra vilken initiering du vill göra med ditt objekt. Låt oss nu definiera en klass och skapa några objekt med metoden själv och __init__.
Skapa en klass och ett objekt med klass- och instansattribut
Python3 class Dog: # class attribute attr1 = 'mammal' # Instance attribute def __init__(self, name): self.name = name # Driver code # Object instantiation Rodger = Dog('Rodger') Tommy = Dog('Tommy') # Accessing class attributes print('Rodger is a {}'.format(Rodger.__class__.attr1)) print('Tommy is also a {}'.format(Tommy.__class__.attr1)) # Accessing instance attributes print('My name is {}'.format(Rodger.name)) print('My name is {}'.format(Tommy.name))>
Produktion
Rodger is a mammal Tommy is also a mammal My name is Rodger My name is Tommy>
Skapa klasser och objekt med metoder
Här definieras hundklassen med två attribut:
- attr1 är ett klassattribut satt till värdet däggdjur . Klassattribut delas av alla instanser av klassen.
- __init__ är en speciell metod (konstruktor) som initierar en instans av klassen Dog. Det krävs två parametrar: själv (som hänvisar till instansen som skapas) och namn (representerar namnet på hunden). Namnparametern används för att tilldela ett namnattribut till varje instans av Dog.
Speak-metoden definieras inom hundklassen. Den här metoden skriver ut en sträng som innehåller namnet på hundinstansen.
Förarkoden börjar med att skapa två instanser av hundklassen: Rodger och Tommy. Metoden __init__ anropas för varje instans för att initiera deras namnattribut med de angivna namnen. Speak-metoden anropas i båda fallen (Rodger.speak() och Tommy.speak()), vilket får varje hund att skriva ut ett uttalande med sitt namn.
Python3 class Dog: # class attribute attr1 = 'mammal' # Instance attribute def __init__(self, name): self.name = name def speak(self): print('My name is {}'.format(self.name)) # Driver code # Object instantiation Rodger = Dog('Rodger') Tommy = Dog('Tommy') # Accessing class methods Rodger.speak() Tommy.speak()>
Produktion
My name is Rodger My name is Tommy>
Notera: För mer information, se Python-klasser och -objekt
java standardparametrar
Python Arv
I Python objektorienterad programmering är arv en klasss förmåga att härleda eller ärva egenskaperna från en annan klass. Klassen som härleder egenskaper kallas den härledda klassen eller barnklassen och klassen som egenskaperna härleds från kallas basklassen eller överordnad klass. Fördelarna med arv är:
- Det representerar verkliga relationer väl.
- Det ger en kods återanvändbarhet. Vi behöver inte skriva samma kod om och om igen. Det låter oss också lägga till fler funktioner till en klass utan att ändra den.
- Det är transitivt till sin natur, vilket innebär att om klass B ärver från en annan klass A, så skulle alla underklasser av B automatiskt ärva från klass A.
Typer av arv
- Enstaka arv : Ennivåarv gör det möjligt för en härledd klass att ärva egenskaper från en ensamstående klass.
- Arv på flera nivåer: Flernivåarv gör det möjligt för en härledd klass att ärva egenskaper från en omedelbar överordnad klass som i sin tur ärver egenskaper från sin överordnade klass.
- Hierarkiskt arv: Arv på hierarkisk nivå gör att mer än en härledd klass kan ärva egenskaper från en överordnad klass.
- Multipelt arv: Arv på flera nivåer gör att en härledd klass kan ärva egenskaper från mer än en basklass.
Arv i Python
I artikeln ovan har vi skapat två klasser, dvs Person (förälderklass) och Anställd (barnklass). Klassen Anställd ärver från Personklassen. Vi kan använda metoderna för personklassen genom medarbetarklassen som visas i visningsfunktionen i ovanstående kod. En underordnad klass kan också modifiera beteendet för den överordnade klassen sett genom metoden details().
Python3 # Python code to demonstrate how parent constructors # are called. # parent class class Person(object): # __init__ is known as the constructor def __init__(self, name, idnumber): self.name = name self.idnumber = idnumber def display(self): print(self.name) print(self.idnumber) def details(self): print('My name is {}'.format(self.name)) print('IdNumber: {}'.format(self.idnumber)) # child class class Employee(Person): def __init__(self, name, idnumber, salary, post): self.salary = salary self.post = post # invoking the __init__ of the parent class Person.__init__(self, name, idnumber) def details(self): print('My name is {}'.format(self.name)) print('IdNumber: {}'.format(self.idnumber)) print('Post: {}'.format(self.post)) # creation of an object variable or an instance a = Employee('Rahul', 886012, 200000, 'Intern') # calling a function of the class Person using # its instance a.display() a.details()>
Produktion
Rahul 886012 My name is Rahul IdNumber: 886012 Post: Intern>
Notera: För mer information, se vår Arv i Python handledning.
Python polymorfism
I objektorienterad programmeringspython betyder polymorfism helt enkelt att ha många former. Till exempel måste vi bestämma om den givna fågelarten flyger eller inte, med hjälp av polymorfism kan vi göra detta med en enda funktion.
Polymorfism i Python
Den här koden demonstrerar konceptet med Python oops-arv och metodöverstyrning i Python-klasser. Den visar hur underklasser kan åsidosätta metoder definierade i sin överordnade klass för att ge specifikt beteende samtidigt som de ärver andra metoder från den överordnade klassen.
Python3 class Bird: def intro(self): print('There are many types of birds.') def flight(self): print('Most of the birds can fly but some cannot.') class sparrow(Bird): def flight(self): print('Sparrows can fly.') class ostrich(Bird): def flight(self): print('Ostriches cannot fly.') obj_bird = Bird() obj_spr = sparrow() obj_ost = ostrich() obj_bird.intro() obj_bird.flight() obj_spr.intro() obj_spr.flight() obj_ost.intro() obj_ost.flight()>
Produktion
There are many types of birds. Most of the birds can fly but some cannot. There are many types of birds. Sparrows can fly. There are many types of birds. Ostriches cannot fly.>
Notera: För mer information, se vår Polymorfism i Python Handledning.
mysql inte lika
Python-inkapsling
I Python objektorienterad programmering är Encapsulation ett av de grundläggande begreppen inom objektorienterad programmering (OOP). Den beskriver idén med att packa in data och metoderna som fungerar på data inom en enhet. Detta sätter begränsningar för åtkomst till variabler och metoder direkt och kan förhindra oavsiktlig modifiering av data. För att förhindra oavsiktlig förändring kan ett objekts variabel endast ändras med ett objekts metod. Dessa typer av variabler är kända som privata variabler.
En klass är ett exempel på inkapsling eftersom den kapslar in all data som är medlemsfunktioner, variabler etc.

Inkapsling i Python
I exemplet ovan har vi skapat variabeln c som det privata attributet. Vi kan inte ens komma åt detta attribut direkt och kan inte ens ändra dess värde.
Python3 # Python program to # demonstrate private members # '__' double underscore represents private attribute. # Private attributes start with '__'. # Creating a Base class class Base: def __init__(self): self.a = 'techcodeview.com' self.__c = 'techcodeview.com' # Creating a derived class class Derived(Base): def __init__(self): # Calling constructor of # Base class Base.__init__(self) print('Calling private member of base class: ') print(self.__c) # Driver code obj1 = Base() print(obj1.a) # Uncommenting print(obj1.c) will # raise an AttributeError # Uncommenting obj2 = Derived() will # also raise an AtrributeError as # private member of base class # is called inside derived class>
Produktion
techcodeview.com>
Notera: för mer information, se vår Inkapsling i Python Handledning.
Dataabstraktion
Den döljer onödiga koddetaljer från användaren. Dessutom, när vi inte vill ge ut känsliga delar av vår kodimplementering och det var här dataabstraktionen kom.
Dataabstraktion i Python kan uppnås genom att skapa abstrakta klasser.
Objektorienterad programmering i Python | Set 2 (datadöljning och objektutskrift)