En klass är en användardefinierad ritning eller prototyp från vilken objekt skapas. Klasser ger ett sätt att kombinera data och funktionalitet tillsammans. Genom att skapa en ny klass skapas en ny typ av objekt, vilket gör att nya instanser av den typen kan skapas. Varje klassinstans kan ha attribut kopplade till sig för att upprätthålla dess tillstånd. Klassinstanser kan också ha metoder (definierade av sin klass) för att modifiera deras tillstånd.
För att förstå behovet av att skapa en klass och objekt i Pytonorm låt oss överväga 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.
Syntax: Klassdefinition
class ClassName: # Statement>
Syntax: Objektdefinition
obj = ClassName() print(obj.atrr)>
Klassen skapar en användardefinierad 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.: Min klass. Mitt attribut
Skapa en Python-klass
Här indikerar klass nyckelordet att du skapar en klass följt av namnet på klassen (hund i det här fallet).
string array skapande i javaPython3
class Dog: sound = 'bark'>
Objekt av Python Class
Ett objekt är en instans av en klass. En klass är som en ritning medan en instans är en kopia av klassen med faktiska värden . Det är ingen idé längre, det är en riktig hund, som en hund av rasen mops som är sju år gammal. Du kan ha många hundar för att skapa många olika instanser, men utan klassen som guide skulle du gå vilse, utan att veta vilken information som krävs.
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.
Deklarera klassobjekt (kallas även instansiera en klass)
När ett objekt i en klass skapas, sägs klassen vara instansierad. Alla instanser delar klassens attribut och beteende. Men värdena för dessa attribut, dvs tillståndet, är unika för varje objekt. En enskild klass kan ha valfritt antal instanser.
Exempel:
Exempel på Python Class och objekt
Att skapa ett objekt i Python innebär att instansiera en klass för att skapa en ny instans av den klassen. Denna process kallas också för objektinstansiering.
Python3 # Python3 program to # demonstrate instantiating # a class class Dog: # A simple class # attribute attr1 = 'mammal' attr2 = 'dog' # A sample method def fun(self): print('I'm a', self.attr1) print('I'm a', self.attr2) # Driver code # Object instantiation Rodger = Dog() # Accessing class attributes # and method through objects print(Rodger.attr1) Rodger.fun()>
Produktion:
mammal I'm a mammal I'm a dog>
I exemplet ovan skapas ett objekt som i grunden är en hund som heter Rodger. Den här klassen har bara två klassattribut som berättar att Rodger är en hund och ett däggdjur.
Förklaring :
I det här exemplet skapar vi en hundklass och vi har skapat två klassvariabler attr1 och attr2 . Vi har skapat en metod som heter roligt() som returnerar strängen I'm a, {attr1} och I'm a, {attr2}. Vi har skapat ett objekt av hundklassen och vi trycker på attr1 av objektet. Slutligen kallar vi roligt() fungera .
Självparameter
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 här är allt det speciella själv är om.
Python3 class GFG: def __init__(self, name, company): self.name = name self.company = company def show(self): print('Hello my name is ' + self.name+' and I' + ' work in '+self.company+'.') obj = GFG('John', 'GeeksForGeeks') obj.show()>
De Själv Parameter kallar det inte för att vara själv, du kan använda vilket annat namn som helst istället för det. Här ändrar vi jaget till ordet någon och utgången blir densamma.
Python3 class GFG: def __init__(somename, name, company): somename.name = name somename.company = company def show(somename): print('Hello my name is ' + somename.name + ' and I work in '+somename.company+'.') obj = GFG('John', 'GeeksForGeeks') obj.show()>
Produktion: Utdata för båda koderna kommer att vara densamma.
Hello my name is John and I work in GeeksForGeeks.>
Förklaring:
I det här exemplet skapar vi en GFG-klass och vi har skapat namn och företag instansvariabler i konstruktorn. Vi har skapat en metod som heter Säg hej() som returnerar strängen Hej mitt namn är + {namn} + och jag arbetar i +{företag}+..Vi har skapat ett personklassobjekt och vi skickar namnet John and Company GeeksForGeeks till instansvariabeln. Slutligen kallar vi show() av klassen.
Pass Statement
Programmets körning påverkas inte av passera uttalandets passivitet. Det tillåter bara programmet att hoppa förbi den delen av koden utan att göra något. Det används ofta när de syntaktiska begränsningarna för Python kräver en giltig sats men ingen användbar kod måste köras.
Python3 class MyClass: pass>
__init__() metod
De __varm__ Metoden liknar konstruktörer i C++ och Java . Konstruktörer används för att initiera objektets tillstånd. Liksom metoder innehåller en konstruktor också en samling satser (dvs instruktioner) som exekveras vid tidpunkten för objektskapandet. 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.
Python3 # Sample class with init method class Person: # init method or constructor def __init__(self, name): self.name = name # Sample Method def say_hi(self): print('Hello, my name is', self.name) p = Person('Nikhil') p.say_hi()>
Produktion:
Hello, my name is Nikhil>
Förklaring:
I det här exemplet skapar vi en Person-klass och vi har skapat en namn instansvariabel i konstruktorn. Vi har skapat en metod som heter say_hi() som returnerar strängen Hej, jag heter {name}. Vi har skapat ett personklassobjekt och vi skickar namnet Nikhil till instansvariabeln. Slutligen anropar vi say_hi() för klassen.
__str__() metod
Python har en speciell metod som kallas __str__() . som används för att definiera hur en klass objekt ska representeras som en sträng. Det används ofta för att ge ett objekt en läsbar textrepresentation, vilket är användbart för att logga, felsöka eller visa användarobjektinformation. När ett klassobjekt används för att skapa en sträng med de inbyggda funktionerna print() och str(), __str__() funktionen används automatiskt. Du kan ändra hur objekt i en klass representeras i strängar genom att definiera __str__() metod.
Python3 class GFG: def __init__(self, name, company): self.name = name self.company = company def __str__(self): return f'My name is {self.name} and I work in {self.company}.' my_obj = GFG('John', 'GeeksForGeeks') print(my_obj)>
Produktion:
My name is John and I work in GeeksForGeeks.>
Förklaring:
I det här exemplet skapar vi en klass som heter GFG. I klassen skapar vi två instansvariabler namn och företag . I metoden __str__() returnerar vi namn instansvariabel och företag instansvariabel. Slutligen skapar vi objektet för GFG-klassen och vi anropar metoden __str__().
Klass- och instansvariabler
Instansvariabler är för data, unika för varje instans och klassvariabler är för attribut och metoder som delas av alla instanser av klassen. Instansvariabler är variabler vars värde tilldelas inuti en konstruktor eller metod med själv medan klassvariabler är variabler vars värde tilldelas i klassen.
Definiera instansvariabler med hjälp av en konstruktor.
Python3 # Python3 program to show that the variables with a value # assigned in the class declaration, are class variables and # variables inside methods and constructors are instance # variables. # Class for Dog class Dog: # Class Variable animal = 'dog' # The init method or constructor def __init__(self, breed, color): # Instance Variable self.breed = breed self.color = color # Objects of Dog class Rodger = Dog('Pug', 'brown') Buzo = Dog('Bulldog', 'black') print('Rodger details:') print('Rodger is a', Rodger.animal) print('Breed: ', Rodger.breed) print('Color: ', Rodger.color) print('
Buzo details:') print('Buzo is a', Buzo.animal) print('Breed: ', Buzo.breed) print('Color: ', Buzo.color) # Class variables can be accessed using class # name also print('
Accessing class variable using class name') print(Dog.animal)>
Produktion :
Rodger details: Rodger is a dog Breed: Pug Color: brown Buzo details: Buzo is a dog Breed: Bulldog Color: black Accessing class variable using class name dog>
Förklaring:
En klass som heter Dog definieras med en klassvariabel djur inställd på stränghunden. Klassvariabler delas av alla objekt i en klass och kan nås med klassnamnet. Hundklass har två instansvariabler ras och färg. Senare skapar vi två objekt av Hund klass och vi skriver ut värdet för båda objekten med en klassvariabel som heter animal.
Definiera instansvariabler med den normala metoden:
Python3 # Python3 program to show that we can create # instance variables inside methods # Class for Dog class Dog: # Class Variable animal = 'dog' # The init method or constructor def __init__(self, breed): # Instance Variable self.breed = breed # Adds an instance variable def setColor(self, color): self.color = color # Retrieves instance variable def getColor(self): return self.color # Driver Code Rodger = Dog('pug') Rodger.setColor('brown') print(Rodger.getColor())>
Produktion:
brown>
Förklaring:
I det här exemplet har vi definierat en klass som heter Hund och vi har skapat en klassvariabel djur. Vi har skapat en instansvariabel ras i konstruktör . Klassen Hund består av två metoder setColor och getColo r, de används för att skapa och initiera en instansvariabel och hämta värdet på instansvariabeln. Vi har gjort ett objekt av Hund klass och vi har satt instansvariabelns värde till brunt och vi skriver ut värdet i terminalen.