Memahami Python String Interning
Python melakukan string interning, teknik untuk mengoptimumkan penggunaan memori dengan menyimpan hanya satu salinan string literal dalam ingatan. Dengan memasukkan rentetan yang sama, Python boleh mengelak daripada mencipta pendua yang tidak diperlukan.
Mekanik Interning
Python biasanya melatih literal rentetan semasa penyusunan. Apabila rentetan literal ditemui dalam kod, Python menyemak sama ada rentetan itu sudah disimpan dalam kolam yang telah dimasukkan. Jika ya, rujukan sedia ada dikembalikan. Jika tidak, salinan rentetan baharu dibuat dan ditambahkan pada kolam yang diintai.
Contoh dengan Pemalar Masa Kompilasi
1 |
|
Dalam kes ini, kedua-dua rentetan literal terdapat dalam kod sumber. Python mengenalinya sebagai pemalar masa kompilasi dan melatihnya semasa penyusunan. Akibatnya, kedua-dua pembolehubah menghala ke objek rentetan yang sama.
Interning Run-Time Expressions
Python tidak secara automatik melatih hasil ekspresi run-time. Contohnya:
1 |
|
Di sini, penggabungan rentetan dilakukan pada masa jalankan. Rentetan yang terhasil tidak diamalkan, jadi ia tidak dibandingkan dengan rentetan "rentetan".
Pelatih Eksplisit
Anda boleh melatih rentetan sedia ada secara manual menggunakan sys. fungsi intern(). Rentetan yang diinternalisasi dikongsi merentas program, meningkatkan kecekapan ingatan.
Butiran Pelaksanaan
Pelaksanaan interning rentetan bergantung pada penterjemah Python. Dalam CPython (pelaksanaan Python yang paling biasa), interning rentetan dilakukan menggunakan jadual cincang. Rentetan dengan nilai cincang yang sama dibandingkan untuk kesamarataan untuk menentukan sama ada ia harus dimasukkan ke dalam penjara.
Atas ialah kandungan terperinci Bagaimanakah Python String Interning Berfungsi dan Bila Ia Berlaku?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!