Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk menjadikan fungsi tersuai dalam Python tersedia secara global?

Bagaimana untuk menjadikan fungsi tersuai dalam Python tersedia secara global?

WBOY
Lepaskan: 2023-05-08 09:43:07
ke hadapan
1387 orang telah melayarinya

Apabila kami membangunkan projek Python, kami sering menulis beberapa fungsi alat. Untuk menggunakan fungsi alat ini dalam berbilang fail .py dalam projek, anda perlu mengimportnya di beberapa tempat, yang sangat menyusahkan.

Sebagai contoh, contoh berikut:

Bagaimana untuk menjadikan fungsi tersuai dalam Python tersedia secara global?

Kedua-dua fail A.py dan C.py menggunakan fungsi alat clean_msg​, maka kedua-duanya memerlukan Import clean_msg daripada util.py​. Ini nampak semulajadi.

Tetapi hari ini apabila saya melihat kod sumber icecream/builtins.py[1], tiba-tiba saya menemui penggunaan lanjutan yang membolehkan kami menggunakan fungsi alat sama seperti menggunakan fungsi cetakan Python , gunakannya secara langsung.

Mari kita lihat kesannya dahulu:

Bagaimana untuk menjadikan fungsi tersuai dalam Python tersedia secara global?

Sila ambil perhatian A.py dan C.py​, saya tidak mengimport clean_msg tetapi menggunakan ini secara langsung fungsi. Dan ia berjalan dengan baik.

Prinsip utama adalah dalam fail entri main.py, 3 baris yang saya bingkaikan:

import builtins

from util import clean_msg
setattr(builtins, 'clean_msg', clean_msg)
Salin selepas log masuk

Dalam Python, semua fungsi atau kelas terbina dalam berada dalam modul terbina, jadi dalam Ia boleh digunakan terus dalam kod tanpa mengimport. Kini kami hanya perlu mendaftarkan fungsi alat tersuai kami ke dalam modul terbina, supaya ia boleh mempunyai kesan yang sama seperti fungsi terbina dalam.

Jika anda ingin mendaftarkan fungsi alat sebagai fungsi terbina dalam, anda hanya perlu mengimportnya dalam fail masukan, kemudian gunakan setattr untuk menetapkannya sebagai atribut modul terbina. Parameter kedua ialah nama apabila anda ingin memanggilnya secara global, dan parameter ketiga ialah fungsi alat yang anda perlukan untuk mendaftar. Nama boleh berbeza daripada nama fungsi utiliti, selagi ia tidak menduplikasi fungsi terbina dalam sedia ada.

Selepas pendaftaran selesai, semasa keseluruhan masa jalan projek ini, fungsi alat ini boleh dipanggil terus melalui nama berdaftar dalam mana-mana fail .py, sama seperti memanggil fungsi terbina dalam.

Rujukan

[1] icecream/builtins.py: https://github.com/gruns/icecream/blob/master/icecream/builtins.py​

Atas ialah kandungan terperinci Bagaimana untuk menjadikan fungsi tersuai dalam Python tersedia secara global?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan