Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengambil Nama Parameter Fungsi dalam Python?

Bagaimana untuk Mengambil Nama Parameter Fungsi dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 15:19:02477semak imbas

How to Retrieve Function Parameter Names in Python?

Mengambil semula Nama Parameter Fungsi dalam Python

Dalam Python, parameter fungsi biasanya ditakrifkan menggunakan pembolehubah pemegang tempat. Walaupun pembolehubah ini dinamakan secara eksplisit dalam definisi fungsi, ia mungkin tidak mudah diakses apabila memeriksa fungsi dari luar.

inspect.getfullargspec

Modul inspect menyediakan kaedah mudah untuk mendapatkan senarai hujah fungsi. Dengan memanggil inspect.getfullargspec(function), di mana fungsi ialah fungsi sasaran, anda boleh mendapatkan tuple yang mengandungi nama parameter.

Contoh:

<code class="python">def a_method(arg1, arg2):
    pass

print(inspect.getfullargspec(a_method))  # Output: (['arg1', 'arg2'], None, None, None)</code>

Ini contoh mencetak nama parameter ("arg1" dan "arg2") sebagai tuple.

inspect.signature (Python 3.3 )

Sejak Python 3.3, inspect.signature () menyediakan pendekatan yang lebih maju untuk memeriksa tandatangan fungsi. Ia mengembalikan objek Tandatangan yang mewakili parameter fungsi, termasuk jenis dan nilai lalainya.

Contoh:

<code class="python">def foo(a, b, c=4, *arglist, **keywords):
    pass

print(inspect.signature(foo))  # Output: <Signature (a, b, c=4, *arglist, **keywords)></code>

Nota:

Sesetengah pemanggil, seperti fungsi terbina dalam, mungkin tidak boleh introspeksi dalam semua pelaksanaan Python. Dalam kes sedemikian, menggunakan inspect.getfullargspec() atau inspect.signature() boleh mengakibatkan ValueError.

Atas ialah kandungan terperinci Bagaimana untuk Mengambil Nama Parameter Fungsi dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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