Pertanyaan
Apa output dar kode berikut? class MyClass: def __ init __ (self): se1f,val=10 obj1=Myclass( ) obj2=Myclass( ) obj1,va1=20 print(obj1.val, obj2,val) a. 1020 b. 2020 I c. 2010 d. 1010
Solusi
Jawaban
Jawaban yang benar adalah **c. 20 10**Berikut penjelasannya:Kode tersebut mendefinisikan sebuah kelas `MyClass` dengan atribut `val` yang diinisialisasi menjadi 10 pada saat objek dibuat. Kemudian, dua objek `obj1` dan `obj2` dari kelas `MyClass` dibuat. Perhatikan bahwa baris `obj1.val = 20` mengubah nilai atribut `val` hanya untuk objek `obj1`. Atribut `val` dari `obj2` tetap 10 karena merupakan objek yang terpisah. Oleh karena itu, ketika kode mencetak `obj1.val` dan `obj2.val`, outputnya adalah 20 dan 10.**Perbaikan Kode:**Kode yang diberikan memiliki kesalahan sintaks. `