Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh mendapatkan semula senarai semua kaedah yang ditakrifkan dalam kelas Python?

Bagaimanakah saya boleh mendapatkan semula senarai semua kaedah yang ditakrifkan dalam kelas Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 19:11:01945semak imbas

How can I retrieve a list of all methods defined in a Python class?

Mendapatkan Kaedah Kelas dalam Python

Kelas Python menyediakan pelbagai kaedah untuk mengakses kefungsian mereka. Untuk mendapatkan senarai semua kaedah yang ditakrifkan dalam kelas, anda boleh menggunakan fungsi inspect.getmembers().

Penggunaan:

<code class="python">from inspect import getmembers

# Get class methods
class_methods = getmembers(class_object, predicate=inspect.ismethod)</code>

Parameter:

  • class_object: Kelas yang anda ingin dapatkan semula kaedahnya.
  • predikat : Fungsi penapis yang menunjukkan ahli mana yang perlu disertakan. Hanya kaedah disertakan secara lalai.

Nilai Pulangan:

  • Senarai tupel, di mana setiap tupel mewakili ahli kelas. Elemen pertama ialah nama ahli, dan elemen kedua ialah nilai ahli (biasanya kaedah tidak terikat).

Contoh:

Untuk menyenaraikan kaedah ditakrifkan dalam kelas optparse.OptionParser, gunakan kod berikut:

<code class="python">from optparse import OptionParser
import inspect

class_methods = inspect.getmembers(OptionParser, predicate=inspect.ismethod)

print(class_methods)</code>

Output:

[(('__init__', <unbound method OptionParser.__init__>),
  ('add_option', <unbound method OptionParser.add_option>),
  ...)]

Nota:

  • getmembers() juga boleh digunakan untuk mendapatkan semula atribut dan ahli kelas yang lain.
  • Melalukan instance kelas kepada getmembers() dan bukannya kelas itu sendiri membolehkan anda mengakses kaedah kelas dan atribut terikat pada kejadian tertentu.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan semula senarai semua kaedah yang ditakrifkan dalam kelas 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