Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

Warisan Python

Warisan Python

Pewarisan memungkinkan kita untuk mendefinisikan kelas yang mengambil semua fungsionalitas dari kelas induk dan memungkinkan kita untuk menambahkan lebih banyak lagi. Dalam tutorial ini, Anda akan belajar menggunakan pewarisan dengan Python.

Video:Warisan Python

Warisan dengan Python

Warisan adalah fitur hebat dalam pemrograman berorientasi objek.

Ini mengacu pada mendefinisikan kelas baru dengan sedikit atau tanpa modifikasi ke kelas yang ada. Kelas baru disebut kelas turunan (atau anak) dan yang diwarisinya disebut kelas dasar (atau induk) .


Sintaks Warisan Python

kelas BaseClass:Badan kelas dasar Kelas DerivedClass(Kelas Dasar):Badan kelas turunan

Kelas turunan mewarisi fitur dari kelas dasar tempat fitur baru dapat ditambahkan ke dalamnya. Hal ini menyebabkan kode dapat digunakan kembali.


Contoh Warisan dengan Python

Untuk mendemonstrasikan penggunaan pewarisan, mari kita ambil sebuah contoh.

Poligon adalah bangun datar yang memiliki 3 sisi atau lebih. Katakanlah, kami memiliki kelas yang disebut Poligon didefinisikan sebagai berikut.

poligon kelas:def __init__(self, no_of_sides):self.n =no_of_sides self.sides =[0 for i in range(no_of_sides)] def inputSides(self):self.sides =[float(input ("Masukkan sisi "+str(i+1)+" :")) for i in range(self.n)] def dispSides(self):for i in range(self.n):print("Side", i+1,"is",self.sides[i]) 

Kelas ini memiliki atribut data untuk menyimpan jumlah sisi n dan besarnya setiap sisi sebagai daftar yang disebut sisi .

inputSides() metode mengambil besarnya masing-masing sisi dan dispSides() menampilkan panjang sisi ini.

Segitiga adalah poligon dengan 3 sisi. Jadi, kita bisa membuat kelas bernama Segitiga yang mewarisi dari Poligon . Ini membuat semua atribut Poligon kelas tersedia untuk Segitiga kelas.

Kita tidak perlu mendefinisikannya lagi (penggunaan kembali kode). Segitiga dapat didefinisikan sebagai berikut.

kelas Segitiga(Poligon):def __init__(self):Poligon.__init__(self,3) def findArea(self):a, b, c =self.sides # hitung setengah keliling s =( a + b + c) / 2 luas =(s*(sa)*(sb)*(sc)) ** 0.5 print('Luas segitiga adalah %0.2f' %area) 

Namun, kelas Segitiga memiliki metode baru findArea() untuk mencari dan mencetak luas segitiga. Berikut adalah contoh lari.

>>> t =Segitiga()>>> t.inputSides()Masukkan sisi 1 :3Masukkan sisi 2 :5Masukkan sisi 3 :4>>> t.dispSides()Sisi 1 adalah 3.0Sisi 2 adalah 5.0Sisi 3 adalah 4,0>>> t.findArea()Luas segitiga adalah 6,00 

Kita dapat melihat bahwa meskipun kita tidak mendefinisikan metode seperti inputSides() atau dispSides() untuk kelas Segitiga secara terpisah, kami dapat menggunakannya.

Jika atribut tidak ditemukan di kelas itu sendiri, pencarian dilanjutkan ke kelas dasar. Ini berulang secara rekursif, jika kelas dasar itu sendiri diturunkan dari kelas lain.


Penggantian Metode dengan Python

Pada contoh di atas, perhatikan bahwa __init__() metode didefinisikan di kedua kelas, Segitiga juga Poligon . Ketika ini terjadi, metode di kelas turunan menimpanya di kelas dasar. Artinya, __init__() di Segitiga mendapat preferensi atas __init__ dalam Poligon .

Umumnya ketika mengganti metode dasar, kami cenderung memperluas definisi daripada hanya menggantinya. Hal yang sama dilakukan dengan memanggil metode di kelas dasar dari yang ada di kelas turunan (memanggil Polygon.__init__() dari __init__() di Segitiga ).

Opsi yang lebih baik adalah menggunakan fungsi bawaan super() . Jadi, super().__init__(3) setara dengan Polygon.__init__(self,3) dan lebih disukai. Untuk mempelajari lebih lanjut tentang super() fungsi di Python, kunjungi fungsi Python super().

Dua fungsi bawaan isinstance() dan issubclass() digunakan untuk memeriksa warisan.

Fungsi isinstance() mengembalikan Benar jika objek adalah turunan dari kelas atau kelas lain yang diturunkan darinya. Setiap kelas dalam Python mewarisi dari objek kelas dasar .

>>> isinstance(t,Triangle)True>>> isinstance(t,Polygon)True>>> isinstance(t,int)False>>> isinstance(t,object)True 

Demikian pula, issubclass() digunakan untuk memeriksa warisan kelas.

>>> issubclass(Polygon,Triangle)False>>> issubclass(Triangle,Polygon)True>>> issubclass(bool,int)True 

Python

  1. Python round() fungsi dengan CONTOH
  2. Python Vs PHP:Apa Perbedaan Antara Python dan PHP?
  3. Gunakan Garis Bawah di REPL
  4. Python Debugger:Tingkatkan Keterampilan Debug Anda dengan Mudah
  5. Tutorial PyQt5 dengan Contoh:Mendesain GUI menggunakan PyQt dengan Python
  6. Python Vs Ruby:Perbedaan antara Ruby dan Python