Mutable, Mohon pencerahan suhu!

Oleh rasmabayu 130 11 pada Minggu, 29 Mei 2016, 15:12:57


Kembali ke forum soal ini

#python #python-lanjutan #class-di-python


Petunjuk Diskusi
Silahkan masuk untuk berdiskusi



Mohon bantuanya menyelesaikan soal ini gan. ^^

#Instruksi:
Di code samping mari kita perbaiki penumpang karena tak seharusnya penumpang mobil masuk juga ke motor. Ini terjadi karena penumpang adalah sebuah mutable objek.

Cara memperbaikinya mudah saja yaitu cukup buat properti penumpang menjadi sebuah variabel pribadi.


class Kendaraan(object):
  penumpang = []
  
  def __init__(self, nama):
    self.nama = nama
 
  def tambah_penumpang(self, nama_penumpang):
    self.penumpang.append(nama_penumpang)
    
# Code di bawah ini untuk anda memeriksa sendiri
# apakah code anda sudah benar
mobil = Kendaraan("Mobil")
motor = Kendaraan("Motor")

mobil.tambah_penumpang("Michael Schumacher")
mobil.tambah_penumpang("Rio Haryanto")

motor.tambah_penumpang("Nico Rosberg")

# Hasilnya haruslah berbeda
print motor.penumpang
print mobil.penumpang
3 jempol




Riyadh11
300
14
· 7 tahun, 10 bulan yang lalu · 12 jempol

class Kendaraan(object):
  def __init__(self, nama):
    self.nama = nama
    self.penumpang=[]
 
  def tambah_penumpang(self,nama_penumpang):
    self.penumpang.append(nama_penumpang)
    
# Code di bawah ini untuk anda memeriksa sendiri
# apakah code anda sudah benar
mobil = Kendaraan("Mobil")
motor = Kendaraan("Motor")

mobil.tambah_penumpang("Michael Schumacher")
mobil.tambah_penumpang("Rio Haryanto")

motor.tambah_penumpang("Nico Rosberg")

# Hasilnya haruslah berbeda
print motor.penumpang
print mobil.penumpang

rasmabayu
130
11
penanya
· 7 tahun, 10 bulan yang lalu · 4 jempol

Solved! terima kasih gan, akhirnya saya ngerti gimana ngubahnya ^^

fariz_tri
199
5
· 7 tahun, 10 bulan yang lalu · 1 jempol

thanks @Riyadh11

ahmadhaqqer
219
1
· 7 tahun, 8 bulan yang lalu · 1 jempol

Tolong diejlaskan bingung nih

hasbi92
108
1
· 7 tahun, 7 bulan yang lalu · 1 jempol

@riyadh11
mengapa sewaktu saya buat dua __init__ malah salah. seperti ini :
class Kendaraan(object):
  def __init__(self, nama):
    self.nama = nama
  def__init__(self)
    self.penumpang=[]
 
  def tambah_penumpang(self,nama_penumpang):
    self.penumpang.append(nama_penumpang)
    
# Code di bawah ini untuk anda memeriksa sendiri
# apakah code anda sudah benar
mobil = Kendaraan("Mobil")
motor = Kendaraan("Motor")

mobil.tambah_penumpang("Michael Schumacher")
mobil.tambah_penumpang("Rio Haryanto")

motor.tambah_penumpang("Nico Rosberg")

# Hasilnya haruslah berbeda
print motor.penumpang
print mobil.penumpang

hasbi92
108
1
· 7 tahun, 7 bulan yang lalu · 0 jempol

@riyadh11
mengapa sewaktu saya buat dua __init__ malah salah. seperti ini :
class Kendaraan(object):
  def __init__(self, nama):
    self.nama = nama
  def__init__(self):
    self.penumpang=[]
 
  def tambah_penumpang(self,nama_penumpang):
    self.penumpang.append(nama_penumpang)
    
# Code di bawah ini untuk anda memeriksa sendiri
# apakah code anda sudah benar
mobil = Kendaraan("Mobil")
motor = Kendaraan("Motor")

mobil.tambah_penumpang("Michael Schumacher")
mobil.tambah_penumpang("Rio Haryanto")

motor.tambah_penumpang("Nico Rosberg")

# Hasilnya haruslah berbeda
print motor.penumpang
print mobil.penumpang

Pr070n
213
59
· 5 tahun, 10 bulan yang lalu · 1 jempol

Override Anda Sendiri

Pr070n
213
59
· 5 tahun, 10 bulan yang lalu · 1 jempol

Override Anda Sendiri caranya gmna?