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

2

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

کیانا ابراهیمی Answered question اکتبر 15, 2020
Add a Comment
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

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

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

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

کیانا ابراهیمی Answered question اکتبر 15, 2020
Add a Comment
Write your answer.
  • Active
  • Views2412 times
  • Answers1 answer
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

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

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

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