Print Time به چه معناست ؟
Print Time به چه معناست ؟
در فصل 13 ما کلاسی بهنام Time تعریف کردیم و شما تابعی به نام printTime بـراي آن نوشتید که باید چیزي شبیه به این کد بهنظر برسد:
class Time:
pass
def printTime(time):
print str(time.hours) + “:” +
str(time.minutes) + “:” +
str(time.seconds)
براي فراخوانی این تابع ما شیئی را بهعنوان پارامتر به آن میفرستیم:
>> currentTime = Time()
>>> currentTime.hours = 9
>>> currentTime.minutes = 14
>>> currentTime.seconds = 30
>>> printTime(currentTime)
براي اینکه printTime را به یک متد تبدیل کنیم، تمام کاري که باید انجـام دهـیم انتقـال تعریف تابع درون تعریف کلاس است. توجه کنید که در این صورت کنگرهگذاري رعایت شود.
class Time:
def printTime(time):
print str(time.hours) + “:” +
str(time.minutes) + “:” +
str(time.seconds)
حال ما میتوانیم با استفاده از نشانهگذاري نقطه printTime را احضار کنیم:
>> currentTime = Time()
>>> currentTime.hours = 9
>>> currentTime.minutes = 14
>>> currentTime.seconds = 30
>>> currentTime.printTime()
به طور معمول شیئی که متد بر روي آن احضار شده قبل از نقطه و نام متد پس از نقطـه نشـان داده میشود. شیئی که متد بر روي آن احضار شده، به پارامتر اول نسبت داده میشود، بنابراین در این مثـال currentTime به پارامتر time اختصاص مییابد. بنابه قرارداد پارامتر اول متد self نامیده میشود، دلیل این نامگذاري کمی پیچیده است، امـا بر اساس کنایۀ مفیدي بنا نهاده شده است. نحوة نگارش براي فراخوانی یک تابع، (currentTime(printTime ،اینطور به ما القـاء میکند که تابع یک خدمتکار فعال است و به او چیزي شبیه به این را میگوید: «آهاي printTime، در اینجا شیئی وجود دارد که باید آن را چاپ کنی.» در برنامــهنویســی شــیءگرا خــدمتکاران فعــال، شــیءها هســتند. احضــاري شــبیه بــه ()printTime.currentTime میگوید: «آهاي currenttime ،لطفاً خودت را چاپ کن.» این تغییر ممکن است مؤدبانهتر بهنظر برسد امـا معلـوم نیسـت مفیـد باشـد. ممکـن اسـت در مثالهایی که تاکنون دیدهایم اینطور نباشد، اما گاهی انتقال مسئولیت از توابع به اشیاء نوشـتن توابـع متنوع را ممکن ساخته و نگهداري و استفادة مجدد کدشان را آسانتر میسازد.
برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید