Parameter self
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Python di Coddy. Pelajaran 4 dari 64.
Parameter self merujuk pada instance sebuah class di dalam method. Parameter ini memungkinkan kamu mengakses dan mengubah atribut object saat ini.
Berikut contoh class dengan method yang menggunakan self:
class Car:
def honk(self):
print("Beep beep!")
def describe(self):
print(f"I am a {self.color} {self.model}")Parameter self harus selalu menjadi parameter pertama dalam definisi method. Parameter ini memberi tahu method object tertentu mana yang sedang digunakan.
Buat object mobil dan tambahkan atribut:
my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"Sekarang panggil method-nya:
my_car.honk()
my_car.describe()output:
Beep beep!
I am a Red SedanPerhatikan bahwa saat memanggil my_car.describe(), kamu tidak memberikan apa pun untuk self. Python otomatis memberikan my_car sebagai parameter self.
Inilah yang terjadi di balik layar:
# Saat kamu menulis ini:
my_car.describe()
# Python sebenarnya melakukan ini:
Car.describe(my_car)Parameter self memungkinkan setiap object mengakses datanya sendiri. Tanpa self, method tidak akan tahu atribut milik object mana yang harus digunakan.
Poin penting: Selalu sertakan self sebagai parameter pertama dalam definisi method, tetapi jangan pernah meneruskannya saat memanggil method. Python menangani ini secara otomatis.
Tantangan
MudahLengkapi Car class di car.py dengan menambahkan method bernama display_info yang menggunakan parameter self untuk mencetak tahun, merek, dan model mobil dengan format:
"This car is a [year] [make] [model]".
car.py: Berisi definisiCarclass tempat kamu akan menambahkan methoddisplay_infodriver.py: File eksekusi utama yang mengimpor dan menggunakanCarclass
File driver.py akan mengimpor Car class milikmu dan membuat instance untuk menguji implementasimu. Pastikan method-mu bekerja dengan benar saat dipanggil dari file driver.
Coba sendiri
from car import Car
# Uji kodemu
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"
my_car.display_info() # Seharusnya mencetak: This car is a 2020 Toyota CorollaPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengantar OOPclass vs objectParameter selfmethodAtributMethod Konstruktor (__init__)Rangkuman: Kalkulator Sederhana4Pewarisan
Pewarisan DasarFungsi super()Penimpaan MethodPewarisan BergandaUrutan Resolusi MethodRingkasan: Hierarki Karyawan5Polimorfisme
Meninjau Ulang Method OverridingDuck Typingclass dan method AbstrakDesain InterfaceRingkasan: Kalkulator Bentuk8Konsep OOP Lanjutan
Komposisi vs PewarisanMixinsMetode Statis dan Metode ClassDecorator ClassPengelola Konteks11Pola Desain Bagian 2
Pola PerintahPola AdapterPola DecoratorPola Template MethodPola StatePola Composite3Property class
Variabel instance vs variabel classDekorator propertyAtribut privatRangkuman: Pengelola Rekening Bank6Enkapsulasi
Anggota Public, Protected, PrivateModifier AksesPenyembunyian InformasiDecorator Property Tingkat LanjutUlasan: Sistem Catatan Siswa12Proyek: Manajemen Perpustakaan
Ikhtisar Proyekclass Buku dan PenggunaSistem PeminjamanFitur PencarianAntarmuka AdminPengujian dan IntegrasiLatihan sendiri: Compiler Python online