دریافت نام کلاس در پایتون

در این مقاله نحوه دریافت نام کلاس در پایتون را خواهید آموخت. روش های مختلفی برای گرفتن نام کلاس ها در پایتون وجود دارد که در این بخش میبینید. قبل از شروع، بهتر است یادآوری کنیم که کلاس در پایتون چیست. در برنامه نویسی شی گرا، کلاس طرحی است که متدها و متغیرهای یک نوع خاص از آبجکت را تعریف میکند. به همین شکل، در پایتون کلاس ها مشخص میکنند که یک آبجکت به چه شکل باید باشد و چه متدها و متغیرهایی باید داشته باشد.
در زمان کدنویسی، گاهی نیاز است تا نام کلاس را پیدا کنیم. مثلا در زمان پیاده سازی متدها __str__
یا __repr__
نمایش نام کلاس بسیار مرسوم است. برای پیدا کردن نام کلاس در پایتون دو روش ساده وجود دارد. روش اول استفاده از متد type
و روش دوم استفاده از اتریبیوت __class__
است. این دو آبجکت کلاس را نمایش میدهند که اگر بخواهید نام کلاس را به شکل یک رشته داشته باشید، میتوانید از __name__
در کنار این دو روش استفاده کنید.
ویدیو پیشنهادی: ویدیو آموزش تفاوت بین str و repr در پایتون
# متد type برای گرفتن نام کلاس پایتون
اولین روش برای پیدا کردن نام کلاس در پایتون استفاده از متد type است. تابع type نوع داده آبجکتی که به عنوان آرگومان به آن ارسال کرده اید را نمایش میدهد. هنوز هم اگر بخواهید نام کلاس را به شکل یک رشته دریافت کنید باید از اتریبیوت __name__
استفاده کنید. در مثال زیر نام کلاس های داخلی پایتون را پیدا میکنیم:
>>> a = 45
>>> type(a).__name__
'int'
>>> b = 'example'
>>> type(b).__name__
'str'
>>> c = True
>>> type(c).__name__
'bool'
>>> d = [1, 2, 3]
>>> type(d).__name__
'list'
>>> e = {1: 'abc'}
>>> type(e).__name__
'dict'
همچنین این روش با کلاس هایی که توسط کاربر ایجاد شده اند نیز کار میکند. در اینجا یک آبجکت از کلاس Book
را به تابع type
ارسال کردیم و نام کلاس را دریافت میکنیم:
class Book:
def __init__(self, name):
self.name = name
book = Book("The Hitchhiker's Guide to the Galaxy")
print(type(book).__name__) # Book
همانطور که مشخص است، با ترکیب type
و __name__
توانستیم نام کلاس را پیدا کنیم.
ویدیو پیشنهادی: رشته(string) در پایتون
# اتریبیوت __class__ برای پیدا کردن نام کلاس پایتون
روش دیگری که میتوانید برای پیدا کردن نام کلاس استفاده کنید، اتریبیوت __class__
است. __class__
یک ویژگی روی آبجکت است که به کلاسی که آبجکت از آن ساخته شده است اشاره میکند. از آنجایی که این ویژگی آبجکت کلاس را برمیگرداند، مجبور هستید آن را با __name__
ترکیب کنید تا نام کلاس به شکل یک رشته دریافت شود.
از همان مثال قبل دوباره استفاده میکنیم تا نحوه کار را __class__
نمایش دهیم:
>>> a = 45
>>> a.__class__.__name__
'int'
>>> b = 'example'
>>> b.__class__.__name__
'str'
>>> c = True
>>> c.__class__.__name__
'bool'
>>> d = [1, 2, 3]
>>> d.__class__.__name__
'list'
>>> e = {1: 'abc'}
>>> e.__class__.__name__
'dict'
همچنین میتوانید از __class__
به روی کلاس هایی که توسط کاربر ایجاد شده اند استفاده کنید:
class Book:
def __init__(self, name):
self.name = name
book = Book("The Hitchhiker's Guide to the Galaxy")
print(book.__class__.__name__) # Book
دقیقا مشابه قبل، نام کلاس را دریافت کردیم.