Dalam Python, tidak ada pengubah akses. Konvensi tersebut adalah awalan dengan menggarisbawahi metode dan variabel yang tidak diharapkan untuk diakses dari luar kelas. Apakah ini secara teknis mencegah Anda mengakses bidang tersebut dari kelas pihak ketiga? Tidak semuanya; tetapi jika Anda melakukannya, Anda sendirian dan mengambil risiko melanggar sesuatu, tanpa bisa menyalahkan kelas lain.
Di C #, pengubah akses ada, tetapi mereka hanya sebuah konvensi — yang dipaksakan oleh kompiler, tetapi masih sebuah konvensi. Ini berarti bahwa secara teknis, seseorang masih dapat mengakses dan mengubah variabel pribadi, baik melalui Refleksi atau dengan merusak memori secara langsung (seperti yang dilakukan pelatih game ). Konsekuensinya persis sama: jika variabel kelas Anda diubah melalui Refleksi dari kelas lain, atau melalui memori yang diubah oleh aplikasi lain, dan itu merusak sesuatu di kelas Anda, itu bukan kesalahan Anda.
Perhatikan bahwa ini, jelas, menciptakan masalah keamanan di mana pihak ketiga dapat mengakses data Anda ; sesuatu yang mengarah ke varian string dan struktur data serupa yang dienkripsi . Tetapi melindungi kode Anda dari penggunaan semacam itu lebih terkait dengan OS dan pembatasan akses tingkat kode , dan tidak ada hubungannya dengan Refleksi semata.