Objek Kekal dalam Python
Dalam Python, kebolehubahan menawarkan mekanisme berharga untuk menjaga integriti data. Mencipta objek tidak boleh ubah, walau bagaimanapun, memberikan cabaran tertentu.
Mengatasi setattr
Pendekatan biasa adalah untuk mengatasi setattr kaedah. Walau bagaimanapun, kaedah ini digunakan walaupun semasa proses init, menjadikannya tidak sesuai untuk mencipta objek tidak berubah.
Mensubkelaskan Tuple
Strategi lain melibatkan subkelaskan tupel. Teknik ini memastikan kebolehubahan dengan mengatasi terus kaedah baharu. Walau bagaimanapun, ia mendedahkan elemen asas tuple sebagai diri[0] dan diri[1], menjejaskan ketidakbolehcapaian mereka.
namedtuple sebagai Penyelesaian
Untuk lebih ringkas dan lebih penyelesaian yang berkesan, pertimbangkan untuk menggunakan collections.namedtuple Python. Fungsi ini mencipta jenis seperti tuple yang menyerupai kelas, yang menampilkan atribut bernama. Immutable = collections.namedtuple("Immutable", ["a", "b"])
Pendekatan ini menunjukkan beberapa kelebihan:
Pelaksanaan Namedtuple
Namedtuples berasal daripada tupel dan gunakan slot untuk memastikan kebolehubahan. Ini adalah analog dengan pendekatan subkelas, tetapi dengan faedah tambahan atribut bernama.
Keserasian Python 2.6
Namedtuples diperkenalkan dalam Python 2.6, memastikan keserasian dengan Python yang lebih lama versi.
Kesimpulan
Walaupun pelbagai pendekatan wujud untuk mencipta objek tidak berubah dalam Python, namedtuples menyediakan penyelesaian yang mudah dan berkesan yang memenuhi keperluan untuk kebolehubah dalam pengaturcaraan Python.
Atas ialah kandungan terperinci ## Bagaimanakah saya boleh mencipta objek tidak boleh diubah dalam Python dan mengapa dinamakan sebagai pendekatan terbaik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!