0Pricing
Python Academy · Pelajaran

Method Instance dan self

Tulis method yang beroperasi pada data milik objek itu sendiri.

Method Instance dan self adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Pendahuluan

Metode instans beroperasi pada data objek tertentu, dengan menggunakan self untuk mengakses dan mengubah atributnya.

Mendefinisikan Metode Instans

def method(self): di dalam kelas merupakan metode instans. Metode ini menerima objek sebagai argumen pertama (self).
class Circle:
    def __init__(self, r): self.r = r
    def area(self):
        import math
        return math.pi * self.r**2
print(Circle(5).area())

Memanggil Metode

obj.method() adalah bentuk sintaks yang lebih praktis dari ClassName.method(obj). Python meneruskan obj sebagai self secara otomatis.
class Dog:
    def __init__(self, name): self.name = name
    def bark(self): print(f'{self.name} says Woof!')
Dog('Rex').bark()

Metode yang Mengembalikan self

Mengembalikan self memungkinkan perangkaian metode: builder.set_name('x').set_age(3).build().
class Builder:
    def __init__(self): self.data = {}
    def set(self, k, v):
        self.data[k] = v
        return self
    def build(self): return self.data
result = Builder().set('x',1).set('y',2).build()
print(result)

Metode Privat (Konvensi)

Awali dengan _ untuk menandai "penggunaan internal". Awalan __ memicu pengubahan nama: _ClassName__method.
class Account:
    def __init__(self, bal): self._bal = bal
    def _validate(self, amount): return amount > 0
    def deposit(self, amount):
        if self._validate(amount):
            self._bal += amount
a = Account(100)
a.deposit(50)
print(a._bal)

Properti sebagai Metode

@property mengubah metode menjadi atribut yang mudah dibaca. Anda tidak memerlukan tanda kurung saat mengaksesnya.
class Circle:
    def __init__(self, r): self.r = r
    @property
    def diameter(self): return self.r * 2
c = Circle(5)
print(c.diameter)  # no ()

Mengubah Keadaan

Metode yang mengubah atribut self mengubah keadaan objek. Rancang metode dengan tujuan yang jelas: kueri atau perintah.
class Stack:
    def __init__(self): self.items = []
    def push(self, x): self.items.append(x)
    def pop(self): return self.items.pop()
    def peek(self): return self.items[-1]
s = Stack()
s.push(1); s.push(2)
print(s.pop(), s.peek())

Membandingkan Objek

Secara default, == membandingkan identitas. Implementasikan __eq__ untuk membandingkan berdasarkan nilai.
class Point:
    def __init__(self, x, y): self.x,self.y=x,y
    def __eq__(self, other): return self.x==other.x and self.y==other.y
print(Point(1,2)==Point(1,2))

Protokol Iterasi

Implementasikan __iter__ dan __next__ agar kelas dapat diiterasi—dan digunakan dalam perulangan for.
class Countdown:
    def __init__(self, n): self.n = n
    def __iter__(self): return self
    def __next__(self):
        if self.n <= 0: raise StopIteration
        self.n -= 1; return self.n + 1
print(list(Countdown(3)))

Protokol Pengelola Konteks

Implementasikan __enter__ dan __exit__ agar kelas dapat digunakan dalam pernyataan with.
class Timer:
    def __enter__(self):
        import time
        self.start = time.time()
        return self
    def __exit__(self, *args):
        import time
        print(f'elapsed: {time.time()-self.start:.3f}s')
with Timer(): pass

Metode vs Fungsi

Saat diakses melalui kelas, Dog.bark adalah fungsi biasa. Melalui instans, d.bark adalah metode terikat—self sudah diisi sebelumnya.
class Dog:
    def bark(self): print('woof')
print(type(Dog.bark))
print(type(Dog().bark))

Pemeriksaan Singkat

Apa yang dimaksud dengan perangkaian metode, dan apa yang harus dikembalikan oleh metode agar dapat mendukungnya?

Ringkasan

Metode instans: def m(self). Panggil sebagai obj.m(). Kembalikan self untuk perangkaian. __eq__/__iter__/__enter__/__exit__ mengimplementasikan protokol. Awalan _ menandai penggunaan internal.

Lanjutkan

Luar biasa! Lanjutkan ke pelajaran berikutnya untuk memperdalam keterampilan Anda.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Method Instance dan self” gratis?

Ya — teks lengkap “Method Instance dan self” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Method Instance dan self”?

Tulis method yang beroperasi pada data milik objek itu sendiri. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Method Instance dan self” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Class dan Method __init__
  2. Atribut Instance vs Class
  3. Method Instance dan self
  4. Method Ajaib: __str__ dan __repr__
← Kembali ke Python Academy