Ya, untuk contoh asli yang diposkan, properti akan bekerja persis sama dengan hanya memiliki variabel instan 'x'.
Ini adalah hal terbaik tentang properti python. Dari luar, mereka bekerja persis seperti variabel instan! Yang memungkinkan Anda untuk menggunakan variabel instan dari luar kelas.
Ini berarti contoh pertama Anda sebenarnya bisa menggunakan variabel instan. Jika semuanya berubah, dan kemudian Anda memutuskan untuk mengubah implementasi Anda dan properti berguna, antarmuka ke properti akan tetap sama dari kode di luar kelas. Perubahan dari variabel instan ke properti tidak berdampak pada kode di luar kelas.
Banyak bahasa dan kursus pemrograman lain akan menginstruksikan bahwa seorang programmer tidak boleh mengekspos variabel instan, dan sebagai gantinya menggunakan 'getter' dan 'setter' untuk nilai apa pun untuk diakses dari luar kelas, bahkan kasus sederhana seperti dikutip dalam pertanyaan.
Kode di luar kelas dengan banyak bahasa (misalnya Java) digunakan
object.get_i()
#and
object.set_i(value)
#in place of (with python)
object.i
#and
object.i = value
Dan ketika mengimplementasikan kelas ada banyak 'getter' dan 'setter' yang melakukan persis seperti contoh pertama Anda: mereplikasi variabel instance sederhana. Getter dan setter ini diperlukan karena jika implementasi kelas berubah, semua kode di luar kelas perlu diubah. Tapi properti python memungkinkan kode di luar kelas sama dengan variabel instan. Jadi kode di luar kelas tidak perlu diubah jika Anda menambahkan properti, atau memiliki variabel instance sederhana. Jadi tidak seperti kebanyakan bahasa Berorientasi Objek, untuk contoh sederhana Anda, Anda dapat menggunakan variabel instan alih-alih 'getter' dan 'setter' yang benar-benar tidak diperlukan, aman dalam pengetahuan bahwa jika Anda mengubah ke properti di masa depan, kode menggunakan kelasmu tidak perlu berubah.
Ini berarti Anda hanya perlu membuat properti jika ada perilaku kompleks, dan untuk kasus sederhana yang sangat umum di mana, seperti yang dijelaskan dalam pertanyaan, hanya variabel instan yang diperlukan, Anda bisa menggunakan variabel instan.