منو سایت

  • خانه
  • وبلاگ
  • Python چگونه بررسی کنیم که آیا یک شی دارای یک ویژگی است (hasttr، getattr)

Python چگونه بررسی کنیم که آیا یک شی دارای یک ویژگی است (hasttr، getattr)

 تاریخ انتشار :
/
  وبلاگ
Python چگونه بررسی کنیم که آیا یک شی دارای یک ویژگی است (hasttr، getattr)

برای بررسی اینکه آیا یک شی دارای ویژگی در پایتون است، می توانید از آن استفاده کنید hasattr() عملکرد.

تابع hasattr بررسی می کند که آیا یک شی دارای ویژگی است یا خیر

این تابع دو آرگومان می گیرد: شی مورد نظر برای بررسی و نام ویژگی مورد نظر.

مثلا:

class MyClass:
    def __init__(self):
        self.attr = 5

obj = MyClass()

# Check if obj has the attribute 'attr'
if hasattr(obj, 'attr'):
    # Do something
    pass

در این مثال، hasattr(obj, 'attr') بر خواهد گشت Trueزیرا obj دارای ویژگی است attr. اگر obj ویژگی را نداشت attr، hasattr(obj, 'attr') برمی گشت False.

همچنین می توانید استفاده کنید getattr() تابعی برای بررسی اینکه آیا یک شی دارای ویژگی در پایتون است یا خیر.

متد getattr ویژگی یک شی را دریافت می کند (در صورت وجود)

این getattr() تابع سه آرگومان می گیرد: شیئی که می خواهید بررسی کنید، نام مشخصه ای که به دنبال آن هستید، و یک مقدار پیش فرض که در صورت وجود نداشتن ویژگی، باید برگرداند.

مثلا:

class MyClass:
    def __init__(self):
        self.attr = 5

obj = MyClass()

# Check if obj has the attribute 'attr'
value = getattr(obj, 'attr', None)

if value is not None:
    # Do something
    pass

نحوه فهرست کردن تمام صفات یک شی

برای فهرست کردن تمام ویژگی های یک شی پایتون، می توانید از آن استفاده کنید dir() عملکرد. یک شی را به عنوان آرگومان خود می گیرد و فهرستی از تمام ویژگی ها و متدهای شی را برمی گرداند.

به عنوان مثال، بیایید تمام ویژگی های کلاس مثال خود را فهرست کنیم:

class MyClass:
    def __init__(self):
        self.attr = 5

    def my_method(self):
        pass

obj = MyClass()

# List all the attributes and methods of obj
attributes = dir(obj)
print(attributes)

در این مثال، dir(obj) لیستی از تمام ویژگی ها و روش های آن را برمی گرداند obj. خروجی این کد چیزی شبیه به این خواهد بود:

Python چگونه بررسی کنیم که آیا یک شی دارای یک ویژگی است (hasttr، getattr)

اینها ویژگی های پیش فرضی هستند که با هر کلاس در پایتون مرتبط هستند. اما اگر دقت کنید، آخرین ویژگی در لیست نامیده می شود.my_method‘. این روشی است که شما در آن مشخص کرده اید MyClass کلاس نمونه

نحوه برشمردن مقادیر ویژگی شی نمونه سازی شده

برای فهرست کردن تمام مقادیر ویژگی یک شیء نمونه سازی شده در پایتون، می توانید استفاده کنید vars() عملکرد. این تابع یک شی را به عنوان آرگومان خود می گیرد و یک فرهنگ لغت از تمام ویژگی ها و مقادیر متناظر آنها را برای آن شی برمی گرداند.

مثلا:

class MyClass:
    def __init__(self):
        self.attr1 = 5
        self.attr2 = 'hello'

obj = MyClass()

# List all the attribute values of obj
attributes = vars(obj)
print(attributes)

در این مثال، vars(obj) یک فرهنگ لغت از همه ویژگی ها و مقادیر متناظر آنها را برای obj هدف – شی.

{'attr1': 5, 'attr2': 'hello'}

توجه داشته باشید که چگونه این تابع متد دو خط زیر را شامل نمی شود dir() تابع مثال قبلی

با تشکر برای خواندن. کد نویسی مبارک!

همچنین بخوانید