Eksempel 1: Polymorfisme med funksjoner og objekter
Følgende skript viser bruk av polymorfisme mellom to forskjellige klasser. En funksjon brukes til å lage objektet til disse klassene. Verdien av variabelen som er navngitt farge initialiseres i __i det__() metode for begge 'Papegøye' og 'Struts'Klasser på tidspunktet for objektoppretting. De egenskaper() Metoden er definert i begge klasser, men utgangen av metoden for hver klasse er litt annerledes. De Create_object () Funksjon brukes til å lage et objekt i klassen. Denne funksjonen utføres to ganger for å lage objektet i 'Papegøye'Klasse og i'Struts'Klasse. Hver vil kalle funksjonene () metoden for begge klasser og skrive ut utdataene.
#!/usr/bin/env python3Produksjon
Følgende utgang viser at objektet til 'Papegøye'Klasse er opprettet med'Grønn'som farge verdi. Funksjonen skriver ut utgangen ved å ringe egenskaper() metode for 'Papegøye'Klasse. Neste, gjenstanden for 'Struts'Klasse er opprettet med'Svart og hvit'som farge verdi. Funksjonen skriver ut utgangen ved å ringe egenskaper() metode for 'Struts'Klasse.
Eksempel 2: Polymorfisme i ikke -relaterte klassemetoder
Som i forrige eksempel, viser følgende skript bruken av polymorfisme i to forskjellige klasser, men ingen tilpasset funksjon brukes til å erklære objektet. De __i det__() metode for begge 'sjef'Og'Kontorist'Klassene vil initialisere de nødvendige variablene. Polymorfisme implementeres her ved å lage Post_Details () og lønn() Metoder i begge klasser. Innholdet i disse metodene er forskjellig for hver av disse klassene. Deretter opprettes objektvariablene for begge klasser og iterert av en til en sløyfe. I hver iterasjon, Post_Details () og lønn() Metoder kalles for å skrive ut utgangen.
#!/usr/bin/env python3Produksjon
Følgende utgang viser at objektet til 'Krybbe'Klasse brukes i den første iterasjonen av til Loop og lønnen til lederen skrives ut etter beregning. Objektet med 'Kontorist'Klasse brukes i den andre iterasjonen av til Loop og lønnen til kontorist skrives ut etter beregning.
Eksempel 3: Polymorfisme i relaterte klassemetoder
Følgende skript viser bruk av polymorfisme mellom to barneklasser. Her, begge 'Triangel'Og'Sirkel'Er barneklassene i foreldreklassen som heter'Geometric_shape.I følge arven kan barneklassen få tilgang til alle variablene og metodene i foreldreklassen. De __i det__() metode for 'Geometric_shape'Klasse brukes i begge barneklasser for å initialisere variabelen Navn Ved å bruke super() metode. Verdiene til utgangspunkt og høyde av 'Triangel'Klasse vil bli initialisert på tidspunktet for oppretting av objekter. På samme måte er radiusverdiene til 'Sirkel'Klasse vil bli initialisert på tidspunktet for oppretting av objekter. Formelen for beregning av området til en trekant er ½ × utgangspunkt × høyde, som er implementert i område() metode for 'Triangel'Klasse. Formelen for beregning av området til en sirkel er 3.14 × (radius)2, som er implementert i område() metode for 'Sirkel'Klasse. Navnene på begge metodene er de samme, her, men formålet er annerledes. Deretter vil en strengverdi bli hentet fra brukeren for å opprette et objekt og for å kalle metoden basert på verdien. Hvis brukeren typer 'trekant', så er et objekt av 'Triangel' klasse vil bli opprettet, og hvis brukeren typer 'sirkel', så er et objekt av 'Sirkel' Klasse vil bli opprettet. Hvis brukeren skriver ut noen tekst uten 'Triangle' eller 'Circle', vil det ikke bli opprettet noe objekt, og en feilmelding vil bli skrevet ut.
#!/usr/bin/env python3Produksjon
I den følgende utgangen utføres skriptet to ganger. Den første gangen, triangel blir tatt som inngangen og objektet initialiseres av tre verdier, 'Triangel', utgangspunkt, og høyde. Disse verdiene brukes deretter til å beregne trekantenes område, og utgangen vil bli skrevet ut. Den andre gangen, sirkel blir tatt som input, og objektet initialiseres av to verdier, 'Sirkel'Og radius. Disse verdiene brukes deretter til å beregne sirkelområdet, og utgangen vil bli skrevet ut.
Konklusjon
Denne artikkelen brukte enkle eksempler for å forklare tre forskjellige bruksområder av polymorfisme i Python. Konseptet med polymorfisme kan også brukes uten klasser, en metode som ikke er forklart her. Denne artikkelen hjalp leserne med å lære mer om hvordan de kan anvende polymorfisme i objektorientert basert Python-programmering.