Bagaimanakah saya boleh memulihkan fungsi terbina dalam yang diganti dalam Python?

Barbara Streisand
Lepaskan: 2024-10-30 07:56:03
asal
848 orang telah melayarinya

How can I restore overridden built-in functions in Python?

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'>
Salin selepas log masuk

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'>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!