Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memeriksa dengan Amanah sama ada Objek Boleh Diulang dalam Python?
Menentukan Kebolehubahan Objek dalam Python
Lelaran melalui jujukan elemen ialah operasi asas dalam Python. Untuk menentukan sama ada objek menyokong lelaran, seseorang mungkin tertanya-tanya sama ada wujud kaedah mudah seperti isiterable.
hasattr(myObj, '__iter__')
Penyelesaian yang disebut dalam soalan, hasattr(myObj, '__iter__'), menyemak kehadiran kaedah __iter__ dalam objek. Walaupun ia berfungsi untuk kebanyakan jenis jujukan, ia gagal dalam Python 2 apabila mengendalikan rentetan.
Fungsi Terbina Dalam Iter
Pendekatan yang lebih mudah adalah dengan menggunakan iter fungsi terbina dalam. Ia cuba memanggil kaedah __iter__ objek atau kaedah __getitem__ dalam kes rentetan, menjadikannya sesuai untuk julat iterable yang lebih luas.
try: some_object_iterator = iter(some_object) except TypeError as te: print(some_object, 'is not iterable')
Taip Itik
Satu lagi pendekatan Pythonic ialah menerima penaipan itik. Ini melibatkan andaian bahawa objek boleh diubah dan mengendalikan pengecualian jika tidak. Gaya EAFP (Easier to Ask Forgiveness than Permission) sering digunakan untuk ini:
try: _ = (e for e in my_object) except TypeError: print(my_object, 'is not iterable')
Modul Koleksi
Modul koleksi Python menawarkan kelas asas abstrak untuk diperiksa untuk kelas atau contoh kebolehubahan. Walau bagaimanapun, kelas ini tidak meliputi semua kes, terutamanya yang boleh diulang dengan kaedah __getitem__.
from collections.abc import Iterable if isinstance(e, Iterable): # e is iterable
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memeriksa dengan Amanah sama ada Objek Boleh Diulang dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!