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

Pemrograman Berorientasi Objek Python

Pemrograman Berorientasi Objek Python

Dalam tutorial ini, Anda akan belajar tentang Pemrograman Berorientasi Objek (OOP) dengan Python dan konsep dasarnya dengan bantuan contoh.

Video:Pemrograman Berorientasi Objek dengan Python

Pemrograman Berorientasi Objek

Python adalah bahasa pemrograman multi-paradigma. Ini mendukung pendekatan pemrograman yang berbeda.

Salah satu pendekatan populer untuk memecahkan masalah pemrograman adalah dengan membuat objek. Ini dikenal sebagai Pemrograman Berorientasi Objek (OOP).

Sebuah objek memiliki dua karakteristik:

Mari kita ambil contoh:

Burung beo adalah objek, karena memiliki properti berikut:

Konsep OOP dalam Python berfokus pada pembuatan kode yang dapat digunakan kembali. Konsep ini juga dikenal sebagai KERING (Don't Repeat Yourself).

Dalam Python, konsep OOP mengikuti beberapa prinsip dasar:


Kelas

Kelas adalah cetak biru untuk objek.

Kita dapat menganggap kelas sebagai sketsa burung beo dengan label. Ini berisi semua detail tentang nama, warna, ukuran, dll. Berdasarkan uraian tersebut, kita dapat mempelajari tentang burung beo. Di sini, burung beo adalah objek.

Contoh untuk kelas burung beo bisa :

class Parrot:
    pass

Di sini, kami menggunakan class kata kunci untuk mendefinisikan kelas kosong Parrot . Dari kelas, kami membuat instance. Instance adalah objek tertentu yang dibuat dari kelas tertentu.


Objek

Sebuah objek (instance) adalah sebuah instantiasi dari sebuah kelas. Ketika kelas didefinisikan, hanya deskripsi untuk objek yang didefinisikan. Oleh karena itu, tidak ada memori atau penyimpanan yang dialokasikan.

Contoh untuk objek kelas burung beo dapat berupa:

obj = Parrot()

Di sini, obj adalah objek dari kelas Parrot .

Misalkan kita memiliki detail burung beo. Sekarang, kita akan menunjukkan cara membangun kelas dan objek burung beo.

Contoh 1:Membuat Kelas dan Objek dengan 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))

Keluaran

Blu is a bird
Woo is also a bird
Blu is 10 years old
Woo is 15 years old

Pada program di atas, kita membuat sebuah class dengan nama Parrot . Kemudian, kita mendefinisikan atribut. Atribut adalah karakteristik dari suatu objek.

Atribut ini didefinisikan di dalam __init__ metode kelas. Ini adalah metode penginisialisasi yang pertama kali dijalankan segera setelah objek dibuat.

Kemudian, kita membuat instance dari Parrot kelas. Di sini, blu dan woo adalah referensi (nilai) ke objek baru kami.

Kita dapat mengakses atribut class menggunakan __class__.species . Atribut kelas adalah sama untuk semua instance kelas. Demikian pula, kami mengakses atribut instance menggunakan blu.name dan blu.age . Namun, atribut instance berbeda untuk setiap instance kelas.

Untuk mempelajari lebih lanjut tentang kelas dan objek, buka Kelas dan Objek Python


Metode

Metode adalah fungsi yang didefinisikan di dalam tubuh kelas. Mereka digunakan untuk mendefinisikan perilaku suatu objek.

Contoh 2:Membuat Metode dengan 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())

Keluaran

Blu sings 'Happy'
Blu is now dancing

Pada program di atas, kita mendefinisikan dua metode yaitu sing() dan dance() . Ini disebut metode instance karena dipanggil pada objek instance yaitu blu .


Warisan

Warisan adalah cara membuat kelas baru untuk menggunakan detail kelas yang ada tanpa memodifikasinya. Kelas yang baru terbentuk adalah kelas turunan (atau kelas anak). Demikian pula, kelas yang ada adalah kelas dasar (atau kelas induk).

Contoh 3:Penggunaan Warisan dengan 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()

Keluaran

Bird is ready
Penguin is ready
Penguin
Swim faster
Run faster

Dalam program di atas, kami membuat dua kelas yaitu Burung (kelas induk) dan Penguin (kelas anak). Kelas anak mewarisi fungsi kelas induk. Hal ini dapat kita lihat dari swim() metode.

Sekali lagi, kelas anak memodifikasi perilaku kelas induk. Kita bisa melihat ini dari whoisThis() metode. Selanjutnya, kami memperluas fungsi kelas induk, dengan membuat run() baru metode.

Selain itu, kami menggunakan super() fungsi di dalam __init__() metode. Ini memungkinkan kita untuk menjalankan __init__() metode kelas induk di dalam kelas anak.


Enkapsulasi

Menggunakan OOP di Python, kita dapat membatasi akses ke metode dan variabel. Ini mencegah data dari modifikasi langsung yang disebut enkapsulasi. Dalam Python, kami menunjukkan atribut pribadi menggunakan garis bawah sebagai awalan yaitu _ single tunggal atau gandakan __ .

Contoh 4:Enkapsulasi Data dengan 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()

Keluaran

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

Dalam program di atas, kita mendefinisikan sebuah Komputer kelas.

Kami menggunakan __init__() cara menyimpan harga jual maksimal Computer . Di sini, perhatikan kodenya

c.__maxprice = 1000

Di sini, kami mencoba mengubah nilai __maxprice di luar kelas. Namun, karena __maxprice adalah variabel pribadi, modifikasi ini tidak terlihat pada output.

Seperti yang ditunjukkan, untuk mengubah nilainya, kita harus menggunakan fungsi setter yaitu setMaxPrice() yang menggunakan harga sebagai parameter.


Polimorfisme

Polimorfisme adalah kemampuan (dalam OOP) untuk menggunakan antarmuka umum untuk berbagai bentuk (tipe data).

Misalkan, kita perlu mewarnai sebuah bentuk, ada beberapa pilihan bentuk (persegi panjang, persegi, lingkaran). Namun kita bisa menggunakan metode yang sama untuk mewarnai bentuk apapun. Konsep ini disebut Polimorfisme.

Contoh 5:Menggunakan Polimorfisme dengan 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)

Keluaran

Parrot can fly
Penguin can't fly

Dalam program di atas, kami mendefinisikan dua kelas Parrot dan Penguin . Masing-masing memiliki fly() yang sama metode. Namun, fungsinya berbeda.

Untuk menggunakan polimorfisme, kami membuat antarmuka umum yaitu flying_test() fungsi yang mengambil objek apa pun dan memanggil fly() object objek tersebut metode. Jadi, ketika kami melewati blu dan peggy objek di flying_test() fungsi, itu berjalan secara efektif.


Poin Penting untuk Diingat:


Python

  1. C# Kelas dan Objek
  2. Tipe Data Python
  3. Operator Python
  4. Kamus Python
  5. Pengecualian Kustom Python
  6. Warisan Python
  7. Kelas Tunggal Jawa
  8. Pelacakan Objek Penglihatan Otomatis
  9. Java - Objek dan Kelas
  10. Java - Serialisasi