Krajta

Funkce python super ()

Funkce python super ()
Skript v Pythonu dokáže strukturované programování i objektově orientované programování (OOP). Super () je integrovaná funkce OOP v Pythonu. Základní znalosti OOP jsou upřednostňovány k pochopení účelu a použití super () metoda. Jednou z důležitých vlastností OOP je dědičnost. Novou třídu lze vytvořit zděděním funkcí jiné třídy a nazývá se to Dědičnost. Zde se nová třída nazývá podtřída nebo podřízená třída a další třída se nazývá nadtřída nebo nadřazená třída. Super () Funkce se používá v podřízené třídě k odkazování na nadřazenou třídu a přístup ke všem proměnným a metodám nadřazené třídy. Díky této funkci je dědičnost lépe zvládnutelná. Jak lze tuto funkci použít v Pythonu, ukázal tento návod.

Příklad 1: Použití funkce super () v jednoduché dědičnosti

Když je podřízená třída vytvořena zděděním nadřazené třídy, nazývá se samostatná dědičnost. Využití super () funkce v jednoduché dědičnosti se ukázala v následujícím skriptu. Rezervovat je zde nadřazená třída, která obsahuje metodu konstruktoru pro inicializaci dat, bookType () způsob tisku typu knihy a sleva() způsob zobrazení nabídky slevy je nebo není k dispozici. Eng_book je zde podřízená třída, která obsahuje metodu konstruktoru, kde super () funkce se používá k volání konstruktoru nadřazené třídy. Podřízená třída má jinou pojmenovanou metodu display_details () vytisknout podrobné informace o knize. Objekty rodičovské i podřízené třídy byly vytvořeny později pro volání různých metod tříd.

# Definujte nadřazenou třídu
třídní kniha:
# Definujte konstruktor
def __init __ (já, titul, autor, typ, nabídka):
já.titul = titul
já.autor = autor
já.typ = typ
já.offer = nabídka
# Definujte funkci pro zobrazení typu knihy
def bookType (vlastní):
pokud já.typ == 1:
print ("% s je kniha% s."% (já.titul „Inženýrství“))
pokud já.typ == 2:
print ("% s je kniha% s."% (já.název „Lékařské“)))
pokud já.typ == 3:
print ("% s je kniha% s."% (já.název „Finance“))
# Definujte funkci pro zobrazení nabídky slevy
def sleva (vlastní):
pokud já.offer == True:
tisk („Kniha má slevovou nabídku.")
jiný:
tisk („Kniha nemá žádnou slevovou nabídku.")
# Definujte podřízenou třídu
třída Eng_book (kniha):
# Definujte konstruktor
def __init __ (já, titul, autor, typ, nabídka, cena):
super ().__init __ (název, autor, typ, nabídka)
já.cena = cena
# Definujte funkci pro zobrazení podrobností knihy
def display_details (self):
super ().sleva()
pokud já.offer == True:
já.cena = já.cena - já.cena * 0.15
print ("Název knihy:% s"% self.titul)
print ("Jméno autora:% s"% self.autor)
print ("Cena:% 0.2f "% sebe.cena)
print ("Používání nadřazené třídy:")
# Definujte objekt nadřazené třídy
objbook = Book ('Medical Microbiology', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, False)
# Funkce volání pro zobrazení typu knihy
kniha objektů.bookType ()
# Funkce volání pro zobrazení nabídky slevy
kniha objektů.sleva()
print ("\ nPoužití podřízené třídy:")
# Definujte objekt podřízené třídy
objEngBook = Eng_book ('Engineering Mathematics', 'H K Dass', 1, True, 50)
# Funkce volání pro zobrazení podrobností knihy
objEngBook.display_details ()

Výstup:

Po provedení výše uvedeného skriptu se zobrazí následující výstup. První výstup byl vygenerován pomocí objektu nadřazené třídy a druhý výstup byl vygenerován pomocí objektu podřízené třídy.

Příklad 2: Použití funkce super () ve více dědičnostech

Když je nová třída generována zděděním více tříd, tento typ dědičnosti se nazývá více dědičností. Použití funkce super () ve více dědičnostech se ukázalo v následujícím skriptu. oddělení je nadřazená třída, která obsahuje metodu konstruktoru pro inicializaci proměnných a Zobrazit() metoda pro tisk názvu oddělení. Kurzy jsou podřízená třída zděděná z oddělení třída a obsahuje metodu konstruktoru a display_Course_info () metoda pro zobrazení detailů kurzu. Učitelé jsou podřízená třída zděděná z oddělení třída a obsahuje metodu konstruktoru a display_Teacher_info () metoda pro zobrazení detailů učitele. Teacher_Course je poslední podřízená třída skriptu, která byla definována zděděním obou Kurzy a Učitelé třídy. Objekty tří podřízených tříd byly vytvořeny na konci skriptu pro přístup k různým metodám tříd. The super () funkce byla použita uvnitř metody konstruktoru všech podřízených tříd k volání konstruktoru nadřazené třídy. K vytvoření objektu podřízené třídy jsou vyžadovány čtyři hodnoty argumentů, protože konstrukce třídy Department obsahuje čtyři argumenty.

# Definujte rodičovskou třídu
oddělení třídy ():
def __init __ (self, dept_name, total_courses, total_credit, total_teachers):
já.dept_name = dept_name
já.total_courses = total_courses
já.total_credit = total_credit
já.total_teachers = total_teachers
zobrazení def (vlastní):
print ("Název oddělení:% s"% self.dept_name)
# Definujte první podřízenou třídu
kurzy (oddělení):
def __init __ (já, jméno, kurzy, zápočty, učitelé):
# Volání konstruktoru nadřazené třídy
super ().__init __ (jméno, kurzy, zápočty, učitelé)
def display_Course_info (vlastní):
print ("Celkem kurzů:% d"% samostatně.celkem_kurzy)
print ("Celkový počet kreditů:% d"% samostatně.celkový_úvěr)
# Definujte druhou podřízenou třídu
třídní učitelé (katedra):
def __init __ (já, jméno, kurzy, zápočty, učitelé):
# Volejte konstruktor třídy rodiče
super ().__init __ (jméno, kurzy, zápočty, učitelé)
def display_Teacher_info (vlastní):
print ("Celkový počet učitelů:% d"% samostatně.celkem_učitelé)
# Definujte třetí podřízenou třídu zděděnou ze dvou tříd
třída Teacher_Course (kurzy, učitelé):
def __init __ (já, jméno, kurzy, zápočty, učitelé):
# Zavolejte konstruktoru nadřazené třídy
super ().__init __ (jméno, kurzy, zápočty, učitelé)
def display_details (self):
super ().Zobrazit()
super ().display_Course_info ()
super ().display_Teacher_info ()
print ("Používání první podřízené třídy")
objCourses = Courses ('CSE', 72, 150, 50)
objCourses.Zobrazit()
objCourses.display_Course_info ()
print ("\ nPoužití druhé podřízené třídy")
objTeachers = Teachers ('BBA', 65, 140, 55)
objTeachers.Zobrazit()
objTeachers.display_Teacher_info ()
print ("\ nPoužití třetí podřízené třídy zděděné z více tříd")
objDCT = Teacher_Course ('anglicky', 60, 122, 20)
objDCT.display_details ()

Výstup:

Po provedení výše uvedeného skriptu se zobrazí následující výstup. Byly zde vygenerovány tři výstupy vytvořením objektů tří podřízených tříd.

Závěr:

The super () Tuto funkci lze použít pouze uvnitř podřízené třídy k volání konstruktoru a jakékoli jiné metody nadřazené třídy. Použití této funkce bylo v tomto kurzu ukázáno vytvořením jedno a víceúrovňové dědičnosti. Doufám, že účel použití této funkce v OOP bude po přečtení tohoto tutoriálu vymazán.

V systému Windows 10 nefunguje levé tlačítko myši
Pokud používáte speciální myš s notebookem nebo stolním počítačem, ale levé tlačítko myši nefunguje ve Windows 10/8/7 z nějakého důvodu uvádíme několi...
Kurzor při psaní v systému Windows 10 skáče nebo se pohybuje náhodně
Pokud zjistíte, že kurzor myši skáče nebo se pohybuje sám, automaticky, náhodně při psaní v notebooku nebo počítači se systémem Windows, pak vám někte...
Jak obrátit směr posouvání myši a touchpadu ve Windows 10
Myš a Touchpadnejenže usnadňují výpočet, ale jsou efektivnější a méně časově náročné. Nemůžeme si představit život bez těchto zařízení, ale přesto je ...