تابع

توابع به شما اجازه می‌دهند که یک رفتار یا وظیفه را تعریف کنید و مجموعه‌ای از کدها هستند که در هر جای برنامه می‌توان از آنها استفاده کرد. توابع دارای آرگومانهایی هستند که وظیفه تابع را مشخص می‌کنند. تابع در داخل کلاس تعریف می‌شود. می‌توان یک تابع را در داخل تابع دیگر تعریف کرد. وقتی که شما در برنامه یک تابع را صدا می‌زنید برنامه به قسمت تعریف تابع رفته و کدهای آن را اجرا می‌کند.

گاهی اوقات دو کلمه پارامتر و آرگومان به یک منظور به کار می‌روند. ساده‌ترین ساختار یک تابع به صورت زیر است :

def FunctionName(Parameter List):
   code to execute

به برنامه ساده زیر توجه کنید. در این برنامه از یک تابع برای چاپ یک پیغام در صفحه نمایش استفاده شده است :

  1: def PrintMessage():                                               
  2:    print("Hello World!");
  3: 
  4: PrintMessage();                                      
Hello World!

در خطوط 2-1 یک تابع تعریف کرده‌ایم. در تعریف تابع بالا کلمه کلیدی def آمده است که نشان دهنده تعریف تابع است. نام تابع ما PrintMessage() است. به این نکته توجه کنید که در نامگذاری تابع از روش پاسکال (حرف اول هر کلمه بزرگ نوشته می‌شود) استفاده کرده‌ایم. این روش نامگذاری قراردادی است و می‌توان از این روش استفاده نکرد، اما پیشنهاد می‌شود که از این روش برای تشخیص توابع استفاده کنید. بهتر است در نامگذاری توابع از کلماتی استفاده شود که کار آن تابع را مشخص می‌کند مثلاً نام‌هایی مانند GoToBed یا OpenDoor . دو پرانتزی که بعد از نام می‌آید نشان دهنده آن است که نام متعلق به یک تابع است. در این مثال در داخل پرانتزها هیچ چیزی نوشته نشده چون پارامتری ندارد. در درسهای آینده در مورد توابع بیشتر توضیح می‌دهیم.
بعد از پرانتزها علامت : قرار می‌دهیم و کدهایی را که می‌خواهیم اجرا شوند را به صورت تو رفتگی بعد از علامت : و در خط زیر می‌نویسیم. در خط 4 تابع PrintMessage() را صدا می‌زنیم. برای صدا زدن یک تابع کافیست نام آن را نوشته و بعد از نام پرانتزها را قرار دهیم.

اگر تابع دارای پارامتر باشد باید شما آرگومانها را به ترتیب در داخل پرانتزها قرار دهید. در این مورد نیز در درسهای آینده توضیح بیشتری می‌دهیم. با صدا زدن یک تابع کدهای داخل بدنه آن اجرا می‌شوند. برای اجرای تابع PrintMessage() برنامه به محل تعریف تابع PrintMessage() می‌رود. مثلاً وقتی ما تابع PrintMessage() را در خط 4 صدا می‌زنیم برنامه از خط 4 به خط 1، یعنی جایی که تابع تعریف شده می‌رود و کدهای بدنه آن را اجرا می کند.