پرسش

دریافت نام کلاس یک شیء

Getting the class name of an instance

من توی پایتون می‌خوام نام کلاسی که یک شیء بهش تعلق داره رو به دست بیارم. مثلاً اگه یه شیء از کلاس MyClass داشته باشم، چطور می‌تونم نام کلاس (یعنی MyClass) رو به دست بیارم؟

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

برای به دست آوردن نام کلاس یک شیء توی پایتون، می‌تونی از خاصیت __class__ استفاده کنی و بعد نام کلاس رو از طریق خاصیت __name__ بگیری. این کد بهت نشون می‌ده چطور این کار رو انجام بدی:

class_name = instance.__class__.__name__
print(class_name)

توی این کد، instance همون شیء مورد نظرته. __class__ به خود کلاس اشاره می‌کنه و __name__ نام اون کلاس رو برمی‌گردونه.

یه روش دیگه هم وجود داره که استفاده از تابع type() هست. این روش به جای استفاده از __class__، نوع شیء رو مستقیم از طریق type() برمی‌گردونه و می‌تونی به همون شکل نام کلاس رو دریافت کنی:

class_name = type(instance).__name__
print(class_name)

هر دو روش دقیقاً یه نتیجه رو برمی‌گردونن و تفاوتی توی خروجی ندارن، اما استفاده از type() به‌عنوان یه راه‌حل تمیزتر و رایج‌تر شناخته می‌شه. این روش در کدهایی که نیاز به خوانایی بیشتر دارن، بیشتر استفاده می‌شه.

بنابراین، اگه بخوای یه روش کلی و کاربردی داشته باشی که هم واضح باشه و هم عملکرد درستی داشته باشه، همون روش type(instance).__name__ رو پیشنهاد می‌کنم.

پاسخ: 1403/06/02
آخرین آپدیت: 1403/07/24