Bagaimana untuk Mendapatkan Nama Kaedah Panggilan dalam Python?

Patricia Arquette
Lepaskan: 2024-11-11 03:32:02
asal
428 orang telah melayarinya

How to Get the Name of the Calling Method in Python?

Cara Mengenalpasti Nama Kaedah Pemanggil dalam Kaedah Dipanggil dalam Python

Apabila bekerja dengan kod Python yang kompleks, ia boleh berguna untuk mendapatkan nama kaedah yang dipanggil kaedah tertentu. Ini boleh membantu dalam penyahpepijatan, pemprofilan dan memahami aliran kod.

Salah satu cara untuk mencapainya ialah menggunakan modul pemeriksa, terutamanya fungsi getframeinfo dan getouterframes. Fungsi ini memberikan maklumat tentang bingkai semasa dan sebelumnya dalam tindanan panggilan.

Pertimbangkan contoh berikut:

def method1(self):
    ...
    a = A.method2()

def method2(self):
    ...
Salin selepas log masuk

Jika kita ingin mendapatkan nama pemanggil (kaedah1) dalam kaedah2 tanpa mengubah suai kaedah1, kita boleh menggunakan kod berikut:

import inspect

def f1(): f2()
def f2():
    curframe = inspect.currentframe()
    calframe = inspect.getouterframes(curframe, 2)
    print('caller name:', calframe[1][3])

f1()
Salin selepas log masuk

Kod ini menggunakan bingkai semasa untuk mendapatkan bingkai luar, yang mewakili kaedah pemanggil. Nama fungsi kemudiannya diekstrak daripada maklumat bingkai luar.

Adalah penting untuk ambil perhatian bahawa teknik introspeksi seperti ini bertujuan terutamanya untuk tujuan nyahpepijat dan pembangunan. Bergantung pada mereka untuk fungsi kritikal pengeluaran adalah tidak disyorkan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nama Kaedah Panggilan 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