Mengesan Pembolehubah Fungsi dalam Python
Anda mempunyai pembolehubah bernama "x" dan ingin menentukan sama ada ia menunjuk ke fungsi. Semasa menyemak jenis "x" menunjukkan ia adalah fungsi, percubaan untuk menggunakan isinstance(x, function) gagal. Di sinilah callable() berguna.
Python 2.x dan Python 3.2 :
callable(x)
Python 3.x sebelum 3.2:
hasattr(x, '__call__')
Pendekatan sebelumnya seperti jenis.FunctionTypes atau inspect.isfunction mempunyai had. Mereka mengembalikan False untuk fungsi bukan Python, seperti builtin, yang dilaksanakan dalam C.
Daripada menyemak jenis atau muat ke dalam bekas, lebih baik "bertanya" objek jika ia boleh dipanggil oleh mencari atribut panggilan. Ini memastikan pengecaman fungsi yang tepat, tanpa mengira pelaksanaannya.
Atas ialah kandungan terperinci Bagaimana untuk Semak sama ada Pembolehubah Merujuk kepada Fungsi dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!