پرسش

چطور می‌شه فهمید که یک شیء دارای یک ویژگی (attribute) هست یا نه؟

How to check if an object has an attribute

چطور می‌تونم بفهمم یک شیء در پایتون یک ویژگی مشخص رو داره یا نه؟ مثلا فرض کنید یک شیء دارم و می‌خوام چک کنم که آیا ویژگی خاصی مثل name داخلش هست یا نه.

1403/06/01
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

برای اینکه بفهمی یک شیء در پایتون دارای یک ویژگی خاص هست یا نه، می‌تونی از تابع داخلی hasattr() استفاده کنی. این تابع دو ورودی می‌گیره: اولی شیء مورد نظرت و دومی نام ویژگی‌ای که می‌خوای چک کنی. این تابع برات یک مقدار True یا False برمی‌گردونه که نشون می‌ده اون شیء دارای اون ویژگی هست یا نه.

کد ساده‌ای که می‌تونی استفاده کنی به این شکل هست:

# Check if object has attribute
if hasattr(obj, 'name'):
    print("Object has attribute 'name'")
else:
    print("Object does not have attribute 'name'")

این کد چک می‌کنه که آیا شیء obj ویژگی name رو داره یا نه و بر اساس نتیجه، پیام مناسب رو چاپ می‌کنه.

چند نکته مهم:

  1. اگر از hasattr() استفاده کنی، و ویژگی‌ای که دنبالشی به هر دلیلی وجود نداشته باشه، تابع به جای اینکه خطا بده، به راحتی False برمی‌گردونه.
  2. یادت باشه که hasattr() فقط وجود اون ویژگی رو چک می‌کنه و اگه نیاز داری مقادیرش رو بررسی کنی، باید از روش‌های دیگه استفاده کنی.
پاسخ: 1403/06/01
آخرین آپدیت: 1403/07/23