Pengaturcaraan Berorientasikan Objek Python

Dalam tutorial ini, anda akan belajar mengenai Pengaturcaraan Berorientasikan Objek (OOP) di Python dan konsep asasnya dengan bantuan contoh.

Video: Pengaturcaraan Berorientasikan Objek di Python

Pengaturcaraan Berorientasikan Objek

Python adalah bahasa pengaturcaraan pelbagai paradigma. Ia menyokong pendekatan pengaturcaraan yang berbeza.

Salah satu pendekatan yang popular untuk menyelesaikan masalah pengaturcaraan adalah dengan membuat objek. Ini dikenali sebagai Pengaturcaraan Berorientasikan Objek (OOP).

Objek mempunyai dua ciri:

  • sifat
  • tingkah laku

Mari kita ambil contoh:

Burung beo boleh menjadi objek, kerana ia mempunyai sifat berikut:

  • nama, umur, warna sebagai atribut
  • menyanyi, menari sebagai tingkah laku

Konsep OOP di Python memberi tumpuan kepada pembuatan kod yang boleh digunakan semula. Konsep ini juga dikenali sebagai KERING (Jangan Ulangi Diri Anda).

Di Python, konsep OOP mengikuti beberapa prinsip asas:

Kelas

Kelas adalah cetak biru untuk objek.

Kita boleh menganggap kelas sebagai lakaran burung nuri dengan label. Ini mengandungi semua perincian mengenai nama, warna, ukuran dan lain-lain. Berdasarkan keterangan ini, kita dapat mempelajari tentang burung nuri. Di sini, burung nuri adalah objek.

Contoh untuk kelas burung nuri ialah:

 Parrot kelas: lulus

Di sini, kami menggunakan classkata kunci untuk menentukan Parrot kelas kosong. Dari kelas, kami membina contoh. Contoh adalah objek khusus yang dibuat dari kelas tertentu.

Objek

Objek (contoh) adalah contoh kelas. Apabila kelas ditakrifkan, hanya keterangan untuk objek yang ditentukan. Oleh itu, tiada memori atau penyimpanan diperuntukkan.

Contoh untuk objek kelas burung beo adalah:

 obj = Burung Nuri ()

Di sini, obj adalah objek kelas Parrot.

Katakan kita mempunyai perincian burung kakak tua. Sekarang, kita akan menunjukkan cara membina kelas dan objek burung kakak tua.

Contoh 1: Membuat Kelas dan Objek di Python

 class Parrot: # class attribute species = "bird" # instance attribute def __init__(self, name, age): self.name = name self.age = age # instantiate the Parrot class blu = Parrot("Blu", 10) woo = Parrot("Woo", 15) # access the class attributes print("Blu is a ()".format(blu.__class__.species)) print("Woo is also a ()".format(woo.__class__.species)) # access the instance attributes print("() is () years old".format( blu.name, blu.age)) print("() is () years old".format( woo.name, woo.age))

Pengeluaran

 Blu adalah burung Woo juga burung Blu berusia 10 tahun Woo berumur 15 tahun

Dalam program di atas, kami membuat kelas dengan nama Parrot. Kemudian, kami menentukan atribut. Atribut adalah ciri objek.

Atribut-atribut ini ditentukan dalam __init__kaedah kelas. Ini adalah kaedah inisialisasi yang pertama kali dijalankan sebaik sahaja objek dibuat.

Kemudian, kami membuat contoh kelas Parrot. Di sini, blu dan woo adalah rujukan (nilai) ke objek baru kami.

Kita boleh mengakses atribut kelas menggunakan __class__.species. Atribut kelas adalah sama untuk semua keadaan kelas. Begitu juga, kita mengakses atribut instance menggunakan blu.namedan blu.age. Walau bagaimanapun, atribut instance berbeza untuk setiap contoh kelas.

Untuk mengetahui lebih lanjut mengenai kelas dan objek, pergi ke Kelas dan Objek Python

Kaedah

Kaedah adalah fungsi yang ditentukan dalam badan kelas. Mereka digunakan untuk menentukan tingkah laku objek.

Contoh 2: Membuat Kaedah di Python

 class Parrot: # instance attributes def __init__(self, name, age): self.name = name self.age = age # instance method def sing(self, song): return "() sings ()".format(self.name, song) def dance(self): return "() is now dancing".format(self.name) # instantiate the object blu = Parrot("Blu", 10) # call our instance methods print(blu.sing("'Happy'")) print(blu.dance())

Pengeluaran

 Blu menyanyikan lagu 'Happy' Blu kini menari

Dalam program di atas, kami menentukan dua kaedah iaitu sing()dan dance(). Ini dipanggil kaedah contoh kerana dipanggil pada objek contoh iaitu blu.

Warisan

Inheritance is a way of creating a new class for using details of an existing class without modifying it. The newly formed class is a derived class (or child class). Similarly, the existing class is a base class (or parent class).

Example 3: Use of Inheritance in Python

 # parent class class Bird: def __init__(self): print("Bird is ready") def whoisThis(self): print("Bird") def swim(self): print("Swim faster") # child class class Penguin(Bird): def __init__(self): # call super() function super().__init__() print("Penguin is ready") def whoisThis(self): print("Penguin") def run(self): print("Run faster") peggy = Penguin() peggy.whoisThis() peggy.swim() peggy.run()

Output

 Bird is ready Penguin is ready Penguin Swim faster Run faster

In the above program, we created two classes i.e. Bird (parent class) and Penguin (child class). The child class inherits the functions of parent class. We can see this from the swim() method.

Again, the child class modified the behavior of the parent class. We can see this from the whoisThis() method. Furthermore, we extend the functions of the parent class, by creating a new run() method.

Additionally, we use the super() function inside the __init__() method. This allows us to run the __init__() method of the parent class inside the child class.

Encapsulation

Using OOP in Python, we can restrict access to methods and variables. This prevents data from direct modification which is called encapsulation. In Python, we denote private attributes using underscore as the prefix i.e single _ or double __.

Example 4: Data Encapsulation in Python

 class Computer: def __init__(self): self.__maxprice = 900 def sell(self): print("Selling Price: ()".format(self.__maxprice)) def setMaxPrice(self, price): self.__maxprice = price c = Computer() c.sell() # change the price c.__maxprice = 1000 c.sell() # using setter function c.setMaxPrice(1000) c.sell()

Output

 Selling Price: 900 Selling Price: 900 Selling Price: 1000

In the above program, we defined a Computer class.

We used __init__() method to store the maximum selling price of Computer. We tried to modify the price. However, we can't change it because Python treats the __maxprice as private attributes.

As shown, to change the value, we have to use a setter function i.e setMaxPrice() which takes price as a parameter.

Polymorphism

Polymorphism is an ability (in OOP) to use a common interface for multiple forms (data types).

Suppose, we need to color a shape, there are multiple shape options (rectangle, square, circle). However we could use the same method to color any shape. This concept is called Polymorphism.

Example 5: Using Polymorphism in Python

 class Parrot: def fly(self): print("Parrot can fly") def swim(self): print("Parrot can't swim") class Penguin: def fly(self): print("Penguin can't fly") def swim(self): print("Penguin can swim") # common interface def flying_test(bird): bird.fly() #instantiate objects blu = Parrot() peggy = Penguin() # passing the object flying_test(blu) flying_test(peggy)

Output

 Parrot can fly Penguin can't fly

In the above program, we defined two classes Parrot and Penguin. Each of them have a common fly() method. However, their functions are different.

Untuk menggunakan polimorfisme, kami membuat antara muka umum iaitu flying_test()fungsi yang mengambil objek apa pun dan memanggil kaedah objek fly(). Oleh itu, ketika kami melewati objek blu dan peggy dalam flying_test()fungsi, ia berjalan dengan berkesan.

Perkara Utama yang Perlu Diingat:

  • Pengaturcaraan Berorientasikan Objek menjadikan program mudah difahami dan juga berkesan.
  • Oleh kerana kelas boleh dibaca, kodnya dapat digunakan semula.
  • Data selamat dan terjamin dengan pengambilan data.
  • Polimorfisme membolehkan antara muka yang sama untuk objek yang berbeza, jadi pengaturcara dapat menulis kod yang cekap.

Artikel menarik...