Python-luokat ja objektit - GeeksforGeeks (2023)

Luokka on käyttäjän määrittelemä suunnitelma tai prototyyppi, josta objektit luodaan. Luokat tarjoavat keinon niputtaa dataa ja toimintoja yhteen. Uuden luokan luominen luo uudentyyppisen objektin, mikä mahdollistaa sen tyypin uusien esiintymien tekemisen. Jokaiseen luokkainstanssiin voi olla liitetty attribuutteja tilan ylläpitämiseksi. Luokkailmentymillä voi myös olla menetelmiä (oman luokan määrittämiä) tilan muokkaamiseen.

Ymmärtää luokan ja objektin luomisen tarpeenPythonTarkastellaanpa esimerkkiä. Oletetaan, että halusit seurata niiden koirien määrää, joilla voi olla erilaisia ​​ominaisuuksia, kuten rotu ja ikä. Jos käytetään luetteloa, ensimmäinen elementti voi olla koiran rotu ja toinen elementti sen ikää. Oletetaan, että on 100 erilaista koiraa, mistä sitten tiedät, minkä elementin pitäisi olla mikä? Entä jos haluaisit lisätä näihin koiriin muita ominaisuuksia? Tästä puuttuu organisointi ja se on täsmällinen tarve luokille.

Syntaksi:Luokan määritelmä

class ClassName: # Lauseke

Syntaksi:Objektin määritelmä

obj = LuokanNimi()print(obj.atrr)

Luokka luo käyttäjän määrittämäntietorakenne, joka sisältää omat datajäsenensä ja jäsenfunktionsa, joita voidaan käyttää ja joita voidaan käyttää luomalla kyseisen luokan esiintymä. Luokka on kuin suunnitelma esineelle.

Muutama pointti Python-luokasta:

  • Luokat luodaan avainsanaluokan mukaan.
  • Attribuutit ovat muuttujia, jotka kuuluvat luokkaan.
  • Attribuutit ovat aina julkisia ja niitä voi käyttää piste (.) -operaattorilla. Esim.: Oma luokkani.Oma attribuutti

Python-luokan luominen

Tässä luokan avainsana osoittaa, että olet luomassa luokkaa, jota seuraa luokan nimi (tässä tapauksessa koira).

Python 3

luokkaa Koira:

ääni= "haukkua"

Python-luokan objekti

Objekti on luokan esiintymä. Luokka on kuin suunnitelma, kun taas esiintymä on kopio luokastatodelliset arvot. Se ei ole enää idea, se on todellinen koira, kuten rotu mopsi, joka on seitsemän vuotta vanha. Sinulla voi olla useita koiria luomaan monia erilaisia ​​esiintymiä, mutta ilman luokkaa oppaana olisit eksyksissä tietämättä, mitä tietoja tarvitaan.

Objekti koostuu:

  • Osavaltio:Sitä edustavat kohteen attribuutit. Se heijastaa myös kohteen ominaisuuksia.
  • Käyttäytyminen:Sitä edustavat objektin menetelmät. Se heijastaa myös kohteen reaktiota muihin esineisiin.
  • Identiteetti:Se antaa objektille ainutlaatuisen nimen ja mahdollistaa yhden objektin vuorovaikutuksen muiden objektien kanssa.

Python-luokat ja objektit - GeeksforGeeks (1)

Claas-objektien ilmoittaminen (kutsutaan myös luokan instantoimiseksi)

Kun luokan objekti luodaan, luokan sanotaan olevan ilmentymä. Kaikki esiintymät jakavat luokan attribuutit ja käyttäytymisen. Mutta näiden attribuuttien arvot, eli tila, ovat yksilöllisiä jokaiselle objektille. Yhdellä luokalla voi olla mikä tahansa määrä esiintymiä.

Esimerkki:

Python-luokat ja objektit - GeeksforGeeks (2)

Esimerkki Python-luokasta ja -objektista

Objektin luominen Pythonissa edellyttää luokan luomista uuden esiintymän luomiseksi kyseisestä luokasta. Tätä prosessia kutsutaan myös objektin ilmentämiseksi.

Python 3

# Python3-ohjelma

# osoittavat ilmentymistä

# Luokka

luokkaa Koira:

# Yksinkertainen luokka

# attribuutti

attr1= "nisäkäs"

attr2= "koira"

# Esimerkkimenetelmä

def hauskaa (itse):

Tulosta("minä olen",itse.attr1)

Tulosta("minä olen",itse.attr2)

# Kuljettajakoodi

# Objektin ilmentäminen

Rodger= Koira()

# Luokan attribuuttien käyttö

# ja menetelmä objektien kautta

Tulosta(Rodger.attr1)

Rodger.fun()

Lähtö:

nisäkäsOlen nisäkäsOlen koira

Yllä olevassa esimerkissä luodaan esine, joka on pohjimmiltaan Rodger-niminen koira. Tällä luokalla on vain kaksi luokkaattribuuttia, jotka kertovat meille, että Rodger on koira ja nisäkäs.

Selitys :

Tässä esimerkissä luomme Koira-luokan ja olemme luoneet kaksi luokkamuuttujaaattr1 ja attr2. Olemme luoneet menetelmän nimeltähauskaa ()joka palauttaa merkkijonon "I'm a, {attr1}" ja I'm a, {attr2}. Olemme luoneet Dog-luokan esineen ja tulostamme osoitteessaattr1esineestä. Lopuksi kutsummehauskaa () toiminto.

Itseparametri

Kun kutsumme tämän objektin menetelmää nimellä myobject.method(arg1, arg2), Python muuntaa sen automaattisesti MyClass.method(omaobjekti, arg1, arg2) - tämä on kaikki erikoistaitseon noin.

Python 3

luokkaa GFG:

def __sen sisällä__(itse, nimi, yritys):

itse.nimi= nimi

itse.yhtiö= yhtiö

def näytä(itse):

Tulosta("Hei minun nimeni on " + itse.nimi+" ja minä" +

" työskennellä "+itse.yhtiö+".")

obj= GFG("John","GeeksForGeeks")

obj.show()

TheItseParametri ei kutsu sitä itseksi, voit käyttää mitä tahansa muuta nimeä sen sijaan. Tässä muutamme minän sanaksi joku ja tulos on sama.

Python 3

luokkaa GFG:

def __init__(jokunimi, nimi, yritys):

jokunimi.nimi= nimi

jokunimi.yritys= yhtiö

def esitys (joku nimi):

Tulosta("Hei minun nimeni on " + jokunimi.nimi+

"ja olen töissä"+jokunimi.yritys+".")

obj= GFG("John","GeeksForGeeks")

obj.show()

Lähtö:Molempien koodien lähtö on sama.

Hei, nimeni on John ja työskentelen GeeksForGeeksissä.

Selitys:

Tässä esimerkissä luomme GFG-luokan ja olemme luoneetnimi ja yritysinstanssimuuttujat konstruktorissa. Olemme luoneet menetelmän nimeltäsano terveisiä()joka palauttaa merkkijonon "Hei nimeni on " + {nimi} +" ja työskentelen "+{yritys}+".Olemme luoneet henkilöluokkaobjektin ja välitämme nimenJohn and CompanyGeeksForGeeks instanssimuuttujaan. Lopuksi kutsummenäytä()luokasta.

Passilausunto

Ohjelman suorittamiseen ei vaikuta kulkealausunnon toimimattomuus. Se vain sallii ohjelman ohittaa kyseisen koodin osan tekemättä mitään. Sitä käytetään usein, kun Pythonin syntaktiset rajoitukset vaativat kelvollisen lausunnon, mutta hyödyllistä koodia ei tarvitse suorittaa.

Python 3

luokkaa Luokkani:

kulkea

__init__() -metodi

The__sen sisällä__menetelmä on samanlainen kuin konstruktoreissaC++jaJava. Konstruktoreita käytetään alustamaan objektin tilaa. Kuten menetelmät, konstruktori sisältää myös kokoelman lauseita (eli käskyjä), jotka suoritetaan objektin luomisen yhteydessä. Se suoritetaan heti, kun luokan objekti on instantoitu. Menetelmä on hyödyllinen minkä tahansa alustuksen tekemiseen, jonka haluat tehdä objektillesi.

Python 3

# Esimerkkiluokka init-menetelmällä

luokkaa Henkilö:

# init-metodi tai konstruktori

def __sen sisällä__(itse, nimi):

itse.nimi= nimi

# Esimerkkimenetelmä

def sano terveisiä(itse):

Tulosta('Hei minun nimeni on',itse.nimi)

s= Henkilö("Nikhil")

p.say_hei()

Lähtö:

Hei, nimeni on Nikhil

Selitys:

Tässä esimerkissä luomme Person-luokan ja olemme luoneet animiinstanssimuuttuja konstruktorissa. Olemme luoneet menetelmän nimeltä say_hi(), joka palauttaa merkkijonon "Hei, nimeni on {nimi}". Olemme luoneet henkilöluokan objektin ja välitämme ilmentymämuuttujalle nimen Nikhil. Lopuksi kutsumme luokan say_hi():tä.

__str__() -menetelmää

Pythonilla on erityinen menetelmä nimeltä__str__(). jota käytetään määrittelemään kuinka aluokkaaobjekti tulee esittää merkkijonona. Sitä käytetään usein antamaan objektille ihmisen luettavissa oleva tekstiesitys, josta on apua lokiin, virheenkorjaukseen tai käyttäjien objektitietojen näyttämiseen. Kun luokkaobjektia käytetään luomaan merkkijono käyttämällä sisäänrakennettuja funktioita print() ja str(),__str__()toimintoa käytetään automaattisesti. Voit muuttaa kuinka objektit aluokkaaesitetään merkkijonoissa määrittämällä__str__()menetelmä.

Python 3

luokkaa GFG:

def __sen sisällä__(itse, nimi, yritys):

itse.nimi= nimi

itse.yhtiö= yhtiö

def __str__(itse):

palata f"Nimeni on {self.name} ja työskentelen yrityksessä {self.company}."

my_obj= GFG("John","GeeksForGeeks")

Tulosta(my_obj)

Lähtö:

Nimeni on John ja työskentelen GeeksForGeeksissä.

Selitys:

Tässä esimerkissä Luomme luokkaa nimeltä GFG. Luomme luokassa kaksi ilmentymämuuttujaanimi ja yritys. __str__()-metodissa palautetaannimiinstanssimuuttuja jayhtiöesiintymän muuttuja. Lopuksi luomme GFG-luokan objektia ja kutsumme menetelmää __str__().

Luokka- ja ilmentymämuuttujat

Instanssimuuttujatovat dataa varten, ainutlaatuiset jokaiselle esiintymälle ja luokkamuuttujille attribuuteille ja menetelmille, joita luokan kaikki esiintymät jakavat. Ilmentymämuuttujat ovat muuttujia, joiden arvo määritetään konstruktorin tai menetelmän sisällä itsellä, kun taas luokkamuuttujat ovat muuttujia, joiden arvo on määritetty luokassa.

Ilmentymämuuttujien määrittäminen konstruktorilla.

Python 3

# Python3-ohjelma näyttää, että muuttujat, joilla on arvo

# määritetty luokkailmoituksessa, ovat luokkamuuttujia ja

# muuttujat metodien ja konstruktorien sisällä ovat ilmentymiä

#muuttuja.

# Koiran luokka

luokkaa Koira:

# Luokkamuuttuja

eläin= 'koira'

# Init-metodi tai konstruktori

def __sen sisällä__(itse, rotu, väri):

# Instanssimuuttuja

itse.rotu= rotu

itse.väri= väri

# Koiraluokan esineet

Rodger= Koira("Mopsi","ruskea")

Haalari= Koira("Bulldoggi","musta")

Tulosta("Rodger-tiedot:")

Tulosta("Rodger on", Rodger.eläin)

Tulosta('rotu:', Rodger.rotu)

Tulosta('Väri:', Rodger.color)

Tulosta('\nBuzon tiedot:')

Tulosta("Buzo on", sukeltaja.eläin)

Tulosta('rotu:', Buzo.rotu)

Tulosta('Väri:', diver.color)

# Luokkamuuttujia voidaan käyttää luokan avulla

#nimi myös

Tulosta("\nLuokkamuuttujan käyttäminen luokan nimellä")

Tulosta(koira.eläin)

Lähtö:

Rodgerin tiedot:Rodger on koiraRotu: MopsiVäri: ruskeaBuzo tiedot:Buzo on koiraRotu: BulldogVäri: musta Luokan muuttujan käyttäminen luokan namedog avulla

Selitys:

Koira-niminen luokka määritellään a:llaluokan muuttujaeläin asetettu merkkijonoon "koira". Luokkamuuttujat ovat kaikkien luokan objektien yhteisiä ja niihin pääsee käsiksi luokan nimen avulla. Koiraluokalla on kaksi instanssimuuttujaarotu ja väri.Myöhemmin luomme kaksi objektiaKoiraluokka ja tulostamme molempien objektien arvon luokkamuuttujalla nimeltä animal.

Ilmentymämuuttujien määrittäminen normaalilla menetelmällä:

Python 3

# Python3-ohjelma näyttää, että voimme luoda

# esiintymän muuttujaa menetelmien sisällä

# Koiran luokka

luokkaa Koira:

# Luokkamuuttuja

eläin= 'koira'

# Init-metodi tai konstruktori

def __sen sisällä__(itse, rotu):

# Instanssimuuttuja

itse.rotu= rotu

# Lisää esiintymän muuttujan

def setColor(itse, väri):

itse.väri= väri

# Hakee ilmentymämuuttujan

def getColor(itse):

palata itse.väri

# Kuljettajakoodi

Rodger= Koira("mopsi")

Rodger.setColor("ruskea")

Tulosta(Rodger.getColor())

Lähtö:

ruskea

Selitys:

Tässä esimerkissä olemme määrittäneet luokan nimeltäKoiraja olemme luoneet aluokan muuttujaeläin. Olemme luoneet instanssimuuttujan rodunrakentaja. Koira-luokka koostuu kahdesta menetelmästäsetColorjagetColor, niitä käytetään ilmentymämuuttujan luomiseen ja alustamiseen sekä ilmentymämuuttujan arvon hakemiseen. Olemme tehneet kohteenKoiraluokka ja olemme asettanut instanssimuuttujan arvoksi ruskea ja tulostamme arvon päätteessä.


References

Top Articles
Latest Posts
Article information

Author: Terence Hammes MD

Last Updated: 09/17/2023

Views: 5697

Rating: 4.9 / 5 (69 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Terence Hammes MD

Birthday: 1992-04-11

Address: Suite 408 9446 Mercy Mews, West Roxie, CT 04904

Phone: +50312511349175

Job: Product Consulting Liaison

Hobby: Jogging, Motor sports, Nordic skating, Jigsaw puzzles, Bird watching, Nordic skating, Sculpting

Introduction: My name is Terence Hammes MD, I am a inexpensive, energetic, jolly, faithful, cheerful, proud, rich person who loves writing and wants to share my knowledge and understanding with you.