مشخصه های کلاس و متد ___ str ___ چیست ؟

2

مشخصه های کلاس و متد ___ str ___ چیست ؟ 

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
0

مشخصه های کلاس و متد ___ str ___ چیست ؟ 

بهمنظور چاپ شیءهاي Card ،آن هم به صورتیکه هر کس بتوانـد آنهـا را بـه راحتـی بخوانـد، لازم است کدهایی صحیح (integer (به کلمات نگاشت شوند. یک راه طبیعی براي انجام این کار اسـتفاده از لیستهایی از رشتهها است. ما در قسمت ابتداي تعریف کلاس، ایـن لیسـتهـا را بـه مشخصـه هـاي کلاس نسبت میدهیم:

class Card:
suitList = [“Clubs”, “Diamonds”, “Hearts”, “Spades”]
rankList = [“narf”, “Ace”, “2”, “3”, “4”, “5”, “6”, “7”,
“8”, “9”, “10”, “Jack”, “Queen”, “King”]

#init method omitted
def __str__(self):
return (self.rankList[self.rank] + ” of ” +
self.suitList[self.suit])

درون __str __ما میتوانیم از suitList و rankList جهت نگاشتن مقـادیر عـددي suit و rank به رشته استفاده کنیم. براي نمونه عبارت [suit.self[suitList.self به این معنی است که: «مشخصۀ suit از شیء self را به عنوان اندیسی در مشخصۀ کلاسی به نام suitList بهکار ببر و رشتۀ متناظر را انتخاب کن.» علت وجود “narf “در اولین عنصر rankList ،نگه داشتن محل صـفرمین عنصـر لیسـت است که هرگز استفاده نمیشود. تنها رتبه هاي معتبر، 1 تا 13 هستند. این قلم دادة هرز کاملاً ضـروري نیست. ما میتوانستیم از 0 شروع کنیم، اما رمزگذاري 2 به عنوان 2 و 3 به عنـوان 3 و … ،کمتـر گـیج کننده است. با متدهایی که تاکنون داشتهایم میتوانیم کارتها را بسازیم و چاپ کنیم:

>> card1 = Card(1, 11)
>>> print card1
Jack of Diamonds

مشخصه هاي کلاس، همچون suitList با تمام اشیاء Card در اشتراکند. مزیـت ایـن خاصـیت آن است که میتوانیم هر شیء Card را براي دسترسی به مشخصههاي کلاس به کار ببریم:

>>> card2 = Card(1, 3)
>>> print card2
3 of Diamonds
>>> print card2.suitList[1]
Diamonds

عیب این روش آن است که اگر ما یک مشخصۀ کلاس را تغییر دهیم، بر روي تمـام وهلـههـاي کلاس اثر میگذارد. براي مثال، اگر تصمیم بگیریم که کارت “JacksofsDiamonds ،”از این پس “Whales JacksofsSwirly “خوانده شود، میتوانیم به این صورت عمل کنیم:

>>> card1.suitList[1] = “Swirly Whales”
>>> print card1
Jack of Swirly Whales

مشکل آن است که تمام Diamondsها به Whales Swirly تبدیل میشوند:

>>> print card2
3 of Swirly Whales

این کار معمولاً ایدة خوبی براي تغییر مشخصههاي کلاس نیست.

برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید

بستر اموزش های ویدویی 

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
پاسخ خود را بنویسید .
  • فعال
  • بازدیدها2115 times
  • پاسخ ها1 پاسخ
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

علامت ذره بین Tutorials سمت راست به رنگ قرمز به شما کمک خواهد کرد .

جدید ترین سوالات پرسیده شده

منقضی شدن سم بتانال 1 پاسخ | 0 آرا
ایا ایدز گزفتم؟ 0 پاسخ ها | 0 آرا
انتخاب ورزش رزمی 0 پاسخ ها | 1 رای
وزارت تعاون کار و رفاه اجتماعی نماد اعتماد الکترونیک اسناد و املاک کشور مرکز آموزش ویدیویی انجمن حم فروشگاه ملی تولید کنندگان مدیریت بر مدیران حم سامانه حیوانات رسانه ملی اخبار متا دانشگاه متاورس استخدام | دانش فروشگاه حم تبلیغات ملی بازار NFT متاورس رنگ نقشه ملی سه بعدی متا املاک و مستغلات