Mengambil semula Nama Kaedah Pemanggil dalam Python
Apabila bekerja dengan panggilan fungsi berbilang peringkat, ia boleh berguna untuk mengakses nama kaedah panggilan. Ini boleh menyediakan konteks yang berharga dalam kaedah yang dipanggil. Artikel ini meneroka cara untuk mendapatkan semula nama kaedah pemanggil dalam Python, mengelakkan sebarang pengubahsuaian pada kaedah pemanggil.
Menggunakan Inspect
Modul pemeriksaan Python menyediakan beberapa fungsi untuk mengakses maklumat tentang pemanggil. inspect.getframeinfo() dan fungsi berkaitan membolehkan kami menavigasi tindanan bingkai dan mendapatkan semula maklumat yang berkaitan.
Pelaksanaan
Di bawah ialah demonstrasi cara menggunakan inspect:
import inspect def f1(): f2() def f2(): curframe = inspect.currentframe() calframe = inspect.getouterframes(curframe, 2) print('caller name:', calframe[1][3]) f1()
Dalam contoh ini, nama pemanggil diambil dalam fungsi f2 menggunakan calframe pembolehubah. Nilai calframe1 mengandungi nama pemanggil (f1 dalam kes ini).
Awas
Adalah penting untuk ambil perhatian bahawa introspeksi, sementara berguna untuk penyahpepijatan dan pembangunan, tidak boleh diharap untuk tujuan berkaitan pengeluaran. Keputusannya mungkin dipengaruhi oleh pelbagai faktor dan harus didekati dengan berhati-hati dalam senario kritikal.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan semula nama kaedah pemanggil dalam Python tanpa mengubah suai kaedah pemanggil?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!