Melaksanakan Objek Tidak Boleh Ubah dalam Python
Dalam Python, membuat objek tidak berubah boleh memberikan cabaran. Satu penyelesaian biasa melibatkan subkelas tuple, seperti yang ditunjukkan dalam coretan kod yang disediakan. Walau bagaimanapun, pendekatan ini memperkenalkan kelemahan mengakses atribut melalui indeks.
Penyelesaian Python Tulen
Penyelesaian elegan yang dicadangkan dalam jawapannya ialah menggunakan jenis koleksi Python.namedtuple. Jenis ini berkelakuan serupa dengan pendekatan subkelas tuple tetapi menawarkan kelebihan tambahan:
Untuk mencipta objek tidak boleh ubah dengan nametuple:
<code class="python">Immutable = collections.namedtuple("Immutable", ["a", "b"])</code>
Mengatasi Akses kepada Atribut Terindeks
Walaupun nametuple menyelesaikan isu pengubahsuaian atribut melalui __setattr__, ia masih membenarkan akses kepada atribut melalui indeks seperti [0] dan [1]. Had ini boleh dikurangkan dengan menstrukturkan kod anda dengan teliti untuk mengelakkan bergantung pada kaedah tidak langsung ini.
Pendekatan Alternatif dengan Sambungan C
Dalam kes di mana pelaksanaan yang lebih terlibat diperlukan , sambungan C boleh dibangunkan untuk menyediakan kebolehubahan sebenar dengan:
Atas ialah kandungan terperinci ## Cara Mencapai Ketidakbolehubahan Sebenar dalam Objek Python: Pandangan Perbandingan pada Pendekatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!