Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengakses Atribut tanpa Pengecualian dalam Python?

Bagaimana untuk Mengakses Atribut tanpa Pengecualian dalam Python?

Susan Sarandon
Lepaskan: 2024-11-10 13:35:02
asal
920 orang telah melayarinya

How to Access Attributes without Exceptions in 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'
Salin selepas log masuk

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
Salin selepas log masuk

Sebagai alternatif, anda boleh menangkap pengecualian AttributeError menggunakan blok try/except:

>>> try:
>>>     a.property
>>> except AttributeError:
>>>     # Handle missing attribute
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan