Overriding Builtins: Memulihkan Kefungsian Hilang
Python menawarkan kefleksibelan dalam menentukan nama tersuai yang boleh mengatasi fungsi dan kata kunci terbina. Walau bagaimanapun, penulisan ganti secara tidak sengaja boleh menimbulkan cabaran dalam mengakses fungsi asal. Artikel ini meneroka kaedah untuk memulihkan builtin asal, mengelakkan keperluan untuk memulakan semula sesi.
Apabila menulis ganti builtin, ia menganggap nilai yang diberikan kepadanya. Sebagai contoh, memberikan pembolehubah bernama 'set' kepada sebarang nilai menutupi fungsi 'set' asal. Untuk memulihkan akses, nama masking mesti dialih keluar.
Untuk melakukan ini, laksanakan pernyataan 'del' diikuti dengan nama yang diberikan, seperti yang dilihat dalam contoh berikut:
>>> set = 'oops' >>> set 'oops' >>> del set >>> set <type 'set'>
Ini tindakan mengalih keluar 'set' daripada skop semasa, mendedahkan fungsi 'set' asal. Sebagai alternatif, binaan asal boleh diakses melalui modul 'builtins' ('__builtin__' dalam Python 2), membenarkan penggantian sementara masih mengekalkan akses kepada pelaksanaan asal:
>>> import builtins >>> builtins.set <type 'set'>
Perlu diingat bahawa nama masking boleh ditakrifkan dalam ruang nama yang berbeza, termasuk yang semasa dan skop di atasnya. Jika mengesannya terbukti mencabar, rujuk kepada "Penerangan ringkas peraturan skop?" sumber untuk cerapan tentang skop yang berkenaan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh memulihkan fungsi terbina dalam yang diganti dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!