Python

Fungsi Python super ()

Fungsi Python super ()
Skrip Python dapat melakukan pengaturcaraan berstruktur dan Pengaturcaraan Berorientasikan Objek (OOP). Super () adalah fungsi Python terbina dalam OOP. Pengetahuan asas OOP lebih disukai untuk memahami tujuan dan penggunaan super () kaedah. Salah satu ciri penting OOP adalah Warisan. Kelas baru boleh dibuat dengan mewarisi ciri kelas lain, dan ia dipanggil Warisan. Di sini, kelas baru dipanggil kelas kelas atau kelas anak, dan kelas lain disebut kelas superclass atau kelas induk. Yang super () fungsi digunakan dalam kelas anak untuk merujuk kepada kelas induk dan mengakses semua pemboleh ubah dan kaedah kelas induk. Fungsi ini menjadikan Warisan lebih terkawal. Bagaimana fungsi ini dapat digunakan dalam Python telah ditunjukkan dalam tutorial ini.

Contoh-1: Penggunaan fungsi super () dalam Warisan tunggal

Apabila kelas anak dibuat dengan mewarisi kelas induk, maka ia dipanggil Warisan tunggal. Penggunaan super () fungsi dalam Warisan tunggal telah ditunjukkan dalam skrip berikut. Tempah adalah kelas induk di sini yang mengandungi kaedah konstruktor untuk memulakan data, Jenis buku () kaedah untuk mencetak jenis buku, dan diskaun() kaedah untuk memaparkan tawaran diskaun ada atau tidak. Buku Eng_ adalah kelas kanak-kanak di sini yang mengandungi kaedah konstruktor di mana super () fungsi digunakan untuk memanggil pembina kelas induk. Kelas kanak-kanak mempunyai kaedah lain yang dinamakan paparan_detail () untuk mencetak maklumat terperinci buku. Objek kedua-dua kelas ibu bapa dan anak-anak telah dibuat kemudian untuk memanggil kaedah berbeza kelas.

# Tentukan kelas induk
Buku kelas:
# Tentukan pembina
def __init __ (diri, tajuk, pengarang, jenis, tawaran):
diri.tajuk = tajuk
diri.pengarang = pengarang
diri.jenis = jenis
diri.tawaran = tawaran
# Tentukan fungsi untuk memaparkan jenis buku
def bookType (diri):
sekiranya diri.taip == 1:
cetak ("% s adalah buku% s."% (diri.tajuk, 'Kejuruteraan'))
sekiranya diri.taip == 2:
cetak ("% s adalah buku% s."% (diri.tajuk, 'Perubatan'))
sekiranya diri.taip == 3:
cetak ("% s adalah buku% s."% (diri.tajuk, 'Kewangan'))
# Tentukan fungsi untuk memaparkan tawaran diskaun
diskaun def (diri):
sekiranya diri.tawaran == Betul:
cetak ("Buku ini mempunyai tawaran diskaun.")
lain:
cetak ("Buku ini tidak mempunyai tawaran diskaun.")
# Tentukan kelas kanak-kanak
kelas Eng_book (Buku):
# Tentukan pembina
def __init __ (diri, tajuk, pengarang, jenis, tawaran, harga):
super ().__init __ (tajuk, pengarang, jenis, tawaran)
diri.harga = harga
# Tentukan fungsi untuk memaparkan perincian buku
def display_details (diri):
super ().diskaun()
sekiranya diri.tawaran == Betul:
diri.harga = diri.harga - diri.harga * 0.15
cetak ("Nama Buku:% s"% diri.tajuk)
cetak ("Nama Pengarang:% s"% diri.pengarang)
cetak ("Harga:% 0.2f "% diri.harga)
cetak ("Menggunakan Kelas Ibu Bapa:")
# Tentukan objek kelas induk
objbook = Buku ('Mikrobiologi Perubatan', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, Salah)
# Fungsi panggilan untuk memaparkan jenis buku
buku obj.Jenis buku ()
# Fungsi panggilan untuk memaparkan tawaran diskaun
buku obj.diskaun()
cetak ("\ nMenggunakan Kelas Kanak-kanak:")
# Tentukan objek kelas kanak-kanak
objEngBook = Eng_book ('Matematik Kejuruteraan', 'H K Dass', 1, Betul, 50)
# Fungsi panggilan untuk memaparkan perincian buku
buku objEng.paparan_detail ()

Pengeluaran:

Output berikut akan muncul setelah melaksanakan skrip di atas. Output pertama telah dihasilkan dengan menggunakan objek kelas induk, dan output kedua telah dihasilkan dengan menggunakan objek kelas anak.

Contoh-2: Penggunaan fungsi super () dalam pelbagai warisan

Apabila kelas baru dihasilkan dengan mewarisi beberapa kelas, Warisan jenis ini dipanggil pelbagai warisan. Penggunaan fungsi super () dalam pelbagai warisan telah ditunjukkan dalam skrip berikut. Jabatan adalah kelas induk yang mengandungi kaedah konstruktor untuk memulakan pemboleh ubah dan paparan () kaedah untuk mencetak nama jabatan. Kursus adalah kelas kanak-kanak yang diwarisi dari Jabatan kelas, dan ia mengandungi kaedah konstruktor dan display_Course_info () kaedah untuk memaparkan perincian kursus. Guru adalah kelas kanak-kanak yang diwarisi dari Jabatan kelas, dan ia mengandungi kaedah konstruktor dan display_Teacher_info () kaedah untuk memaparkan perincian guru. Guru_Kursus adalah kelas kanak-kanak terakhir skrip yang telah ditentukan dengan mewarisi kedua-duanya Kursus dan Guru kelas. Objek dari tiga kelas kanak-kanak telah dibuat di akhir skrip untuk mengakses kaedah berbeza kelas. The super () fungsi telah digunakan di dalam kaedah konstruktor bagi semua kelas anak untuk memanggil pembina kelas induk. Empat nilai argumen diperlukan untuk membuat objek kelas kanak-kanak kerana konstruk kelas Jabatan mengandungi empat argumen.

# Tentukan Kelas Ibu Bapa
Jabatan kelas ():
def __init __ (diri, dept_name, total_courses, total_credit, total_teachers):
diri.dept_name = dept_name
diri.jumlah_kursus = jumlah_kursus
diri.jumlah_kredit = jumlah_kredit
diri.total_teachers = total_teachers
paparan def (diri):
cetak ("Nama Jabatan:% s"% diri.nama dept)
# Tentukan kelas anak pertama
Kursus kelas (Jabatan):
def __init __ (diri, nama, kursus, kredit, guru):
# Panggil pembina kelas induk
super ().__init __ (nama, kursus, kredit, guru)
def display_Course_info (diri):
cetak ("Jumlah Kursus:% d"% diri.jumlah_kursus)
cetak ("Jumlah Kredit:% d"% diri.jumlah_kredit)
# Tentukan kelas anak kedua
Guru kelas (Jabatan):
def __init __ (diri, nama, kursus, kredit, guru):
# Panggil pembina kelas induk
super ().__init __ (nama, kursus, kredit, guru)
def display_Teacher_info (diri):
cetak ("Jumlah Guru:% d"% diri.jumlah_pengajar)
# Tentukan kelas anak ketiga yang diwarisi dari dua kelas
Teacher_Course (Kursus, Guru) kelas:
def __init __ (diri, nama, kursus, kredit, guru):
# Panggil pembina kelas induk
super ().__init __ (nama, kursus, kredit, guru)
def display_details (diri):
super ().paparan ()
super ().display_Course_info ()
super ().display_Teacher_info ()
cetak ("Menggunakan kelas anak pertama")
objCourses = Kursus ('CSE', 72, 150, 50)
objCourses.paparan ()
objCourses.display_Course_info ()
cetak ("\ nMenggunakan kelas anak kedua")
objTeachers = Guru ('BBA', 65, 140, 55)
objTeachers.paparan ()
objTeachers.display_Teacher_info ()
cetak ("\ nMenggunakan kelas anak ketiga yang diwarisi dari pelbagai kelas")
objDCT = Teacher_Course ('Bahasa Inggeris', 60, 122, 20)
objDCT.paparan_detail ()

Pengeluaran:

Output berikut akan muncul setelah melaksanakan skrip di atas. Tiga output telah dihasilkan di sini dengan membuat objek dari tiga kelas kanak-kanak.

Kesimpulannya:

The super () fungsi hanya boleh digunakan di dalam kelas anak untuk memanggil konstruktor dan kaedah kelas induk yang lain. Penggunaan fungsi ini telah ditunjukkan dalam tutorial ini dengan membuat Warisan tunggal dan pelbagai peringkat. Saya harap tujuan penggunaan fungsi ini dalam OOP akan dihapus setelah membaca tutorial ini.

Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah penambahan kedua belas untuk siri Tomb Raider - francais permainan aksi-pengembaraan yang dibuat oleh Eidos Montreal....
Cara Meningkatkan FPS di Linux?
FPS bermaksud Bingkai sesaat. Tugas FPS adalah mengukur kadar bingkai dalam pemutaran video atau persembahan permainan. Dengan kata mudah bilangan gam...
Permainan Makmal Apl Oculus Teratas
Sekiranya anda adalah pemilik alat dengar Oculus, maka anda mesti mengetahui tentang memuatkan sideload. Sideloading adalah proses memasang kandungan ...