Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengakses Atribut tanpa Pengecualian dalam Python?
Mengakses Atribut tanpa Pengecualian
Apabila bekerja dengan objek, anda mungkin menghadapi senario di mana anda perlu menentukan sama ada atribut wujud sebelum menggunakannya. Pertimbangkan contoh berikut:
>>> a = SomeClass() >>> a.property Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: SomeClass instance has no attribute 'property'
Untuk mengelakkan ralat sedemikian, anda boleh menggunakan fungsi hasattr().
Menggunakan hasattr():
hasattr() menerima dua argumen: objek dan nama atribut. Ia mengembalikan True jika objek mempunyai atribut yang ditentukan dan False sebaliknya.
>>> if hasattr(a, 'property'): >>> a.property
Sebagai alternatif, anda boleh menangkap pengecualian AttributeError menggunakan blok try/except:
>>> try: >>> a.property >>> except AttributeError: >>> # Handle missing attribute
Pendekatan Pythonic:
Dalam Python, adalah amalan biasa untuk meminta ampun daripada kebenaran. Ini bermakna cuba mengakses harta itu dan mengendalikan sebarang pengecualian yang mungkin timbul. Pendekatan ini selalunya boleh menjadi lebih ringkas dan cekap:
>>> a.property
Pertimbangan Prestasi:
Jika anda menjangkakan harta itu hadir pada kebanyakan masa, mengaksesnya secara terus mungkin lebih pantas daripada menggunakan hasattr(). Walau bagaimanapun, jika harta itu berkemungkinan kerap hilang, hasattr() lazimnya akan lebih cekap daripada pengendalian pengecualian berulang.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Atribut tanpa Pengecualian dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!