Class dan Object di Python3

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Class dan Object di Python3

Di artikel sebelumnya kita tentang apa itu object oriented programming (OOP). Di artikel ini kita membuat contoh tentang class di bahasa python.

Table of content



  • how to define a class in python

  • instance attributes

  • class attributes

  • instantiating objects

  • instance methods

  • modifying attrbutes

  • python object inheritance

  • extends parent class

  • parent vs child class


How To Define a Class in Python


untuk membuat class di python di awali dengan class nama_class perhatikan sample di bawah ini :

class Kucing:
pass

 

Instance Attributes


Semua kelas membuat objek, dan semua objek berisi karakteristik yang disebut atribut . Gunakan metode __init __ () untuk menginisialisasi atribut awal objek dengan memberinya nilai default. Perhatikan sample di bawah ini

class Kucing:

# Initializer / Instance Attributes
def __init__(self, nama, umur):
self.nama = nama
self.umur = umur

Dalam kasus kelas Kucing (), setiap kucing memiliki nama dan usia tertentu, yang jelas penting untuk diketahui ketika Anda mulai benar-benar menciptakan kucing yang berbeda. Ingat: kelas hanya untuk mendefinisikan Kucing, tidak benar-benar membuat turunan kucing individu dengan nama dan umur tertentu

Class Attributes


Atribut instance spesifik untuk setiap objek, atribut class adalah sama untuk semua instance — yang dalam hal ini adalah semua kucing. Perhatikan kode di bawah ini :

class Kucing:

# Class Attribute
spesies = 'mamalia'

# Initializer / Instance Attributes
def __init__(self, nama, umur):
self.nama = nama
self.umur = umur

Jadi, setiap kucing memiliki nama dan umur yang unik, setiap kucing akan menjadi mamalia.

Instantiating Objects


Perhatikan kode di bawah ini :

class Kucing:

# Class Attribute
spesies = 'mamalia'

# Initializer / Instance Attributes
def __init__(self, nama, umur):
self.nama = nama
self.umur = umur

# Instantiate the Kucing object
philo = Kucing("Philo", 5)
mikey = Kucing("Mikey", 6)

# Access the instance attributes
print("{} berumur {} bulan dan {} berumur {} bulan.".format(
philo.nama, philo.umur, mikey.nama, mikey.umur))

# Is Philo a mammal?
if philo.spesies == "mamalia":
print("{0} adalah spesies {1}!".format(philo.nama, philo.spesies))

hasil akhirnya seperti di bawah ini :

Philo berumur 5 bulan dan Mikey berumur 6 bulan.
Philo adalah spesies mamalia!

Kita membuat instance baru dari kelas Kucing () dan menugaskannya ke variabel philo. Kami kemudian memberikan dua argumen, "Philo" dan 5, yang masing-masing mewakili nama dan umur.

Atribut-atribut ini diteruskan ke metode __init__, yang dipanggil setiap kali Anda membuat instance baru, melampirkan nama dan usia ke objek.

Ini adalah magic Python; ketika Anda membuat instance baru dari kelas, Python secara otomatis menentukan dan meneruskannya ke metode __init__.

Instance Methods


Instance Method didefinisikan di dalam kelas dan digunakan untuk mendapatkan konten dari instance. Instance Method juga dapat digunakan untuk melakukan operasi dengan atribut dari sebuah objek. Seperti metode __init__, argumen pertama selalu di awali dengan attribut self, perhatikan kode di bawah ini :

class Kucing:

# Class Attribute
spesies = 'mamalia'

# Initializer / Instance Attributes
def __init__(self, nama, umur):
self.nama = nama
self.umur = umur

# instance method
def description(self):
return "{} berumur {} bulan".format(self.nama, self.umur)

# instance method
def speak(self, sound):
return "{} bersuara {}".format(self.nama, sound)

# Instantiate the Dog object
mikey = Kucing("Mikey", 6)

# call our instance methods
print(mikey.description())
print(mikey.speak("Meong Meong"))

hasil akhirnya seperrti di bawah ini

Mikey berumur 6 bulan
Mikey bersuara Meong Meong

Modifying Attributes


Perhatikan kode dibawah ini :

class Email:
def __init__(self):
self.is_sent = False
def send_email(self):
self.is_sent = True

my_email = Email()
my_email.is_sent
False

my_email.send_email()
my_email.is_sent
True

Python Object Inheritance


Inheritance adalah proses dimana satu kelas mengambil atribut dan metode yang lain. Kelas yang baru dibentuk disebut kelas anak, dan kelas yang berasal dari kelas anak disebut kelas induk.

Penting untuk dicatat bahwa kelas anak menimpa atau memperluas fungsionalitas dari kelas induk. Dengan kata lain, kelas anak mewarisi semua atribut dan perilaku orang tua tetapi juga dapat menentukan perilaku yang berbeda untuk diikuti. Jenis kelas yang paling dasar adalah objek, yang umumnya semua kelas lain mewarisi sebagai orangtua mereka.

Extends Parent Class


Perhatikan kode di bawah ini :

# Parent class
class Dog:

# Class attribute
species = 'mammal'

# Initializer / Instance attributes
def __init__(self, name, age):
self.name = name
self.age = age

# instance method
def description(self):
return "{} is {} years old".format(self.name, self.age)

# instance method
def speak(self, sound):
return "{} says {}".format(self.name, sound)

# Child class (inherits from Dog class)
class RussellTerrier(Dog):
def run(self, speed):
return "{} runs {}".format(self.name, speed)

# Child class (inherits from Dog class)
class Bulldog(Dog):
def run(self, speed):
return "{} runs {}".format(self.name, speed)

# Child classes inherit attributes and
# behaviors from the parent class
jim = Bulldog("Jim", 12)
print(jim.description())

# Child classes have specific attributes
# and behaviors as well
print(jim.run("slowly"))

Parent vs. Child Classes

perhatikan kode dibawah ini :

# Parent class
class Dog:

# Class attribute
species = 'mammal'

# Initializer / Instance attributes
def __init__(self, name, age):
self.name = name
self.age = age

# instance method
def description(self):
return "{} is {} years old".format(self.name, self.age)

# instance method
def speak(self, sound):
return "{} says {}".format(self.name, sound)

# Child class (inherits from Dog() class)
class RussellTerrier(Dog):
def run(self, speed):
return "{} runs {}".format(self.name, speed)

# Child class (inherits from Dog() class)
class Bulldog(Dog):
def run(self, speed):
return "{} runs {}".format(self.name, speed)

# Child classes inherit attributes and
# behaviors from the parent class
jim = Bulldog("Jim", 12)
print(jim.description())

# Child classes have specific attributes
# and behaviors as well
print(jim.run("slowly"))

# Is jim an instance of Dog()?
print(isinstance(jim, Dog))

# Is julie an instance of Dog()?
julie = Dog("Julie", 100)
print(isinstance(julie, Dog))

# Is johnny walker an instance of Bulldog()
johnnywalker = RussellTerrier("Johnny Walker", 4)
print(isinstance(johnnywalker, Bulldog))

# Is julie and instance of jim?
print(isinstance(julie, jim))

baca artikel lainya :


sumber referensi :