
برای بررسی اینکه آیا یک شی دارای ویژگی در پایتون است، می توانید از آن استفاده کنید 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()
تابع سه آرگومان می گیرد: شیئی که می خواهید بررسی کنید، نام مشخصه ای که به دنبال آن هستید، و یک مقدار پیش فرض که در صورت وجود نداشتن ویژگی، باید برگرداند.
مثلا:
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
. خروجی این کد چیزی شبیه به این خواهد بود:
اینها ویژگی های پیش فرضی هستند که با هر کلاس در پایتون مرتبط هستند. اما اگر دقت کنید، آخرین ویژگی در لیست نامیده می شود.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()
تابع مثال قبلی
با تشکر برای خواندن. کد نویسی مبارک!