تعریف کردن تابع

در این فصل نوشتنِ تابع‌ها را یاد می‌گیرید. توابع قسمت‌های نام‌گذاری‌شده‌ی کد هستند که برای انجام کار خاصّی طرّاحی می‌شوند. وقتی می‌خواهید وظیفه‌ی خاصّی را که در یک تابع تعریف شده انجام دهید، تابعی را که عهده‌دار آن است فراخوانی می‌کنید. اگ 66 ر به انجامِ چندباره‌ی کاری نیاز داشته باشید، نیازی نیست کد آن را بارها تکرار کنید، کافی است تابعی را که به مدیریّت این کار اختصاص داده‌اید فراخوانی کنید و این فراخوانی موجب می‌شود که پایتون کد داخل تابع را اجرا کند. شما درخواهید یافت که به‌کارگیری تابع‌ها نوشتن، خواندن، آزمایش و رفع عیب برنامه‌های شما را آسان‌تر می‌کند.

در این فصل راه‌های انتقال اطّلاعات به تابع‌ها را ه67 م می‌آموزید و یاد می‌گیرید که چه‌گونه تابع‌های خاصی را که وظیفه‌ی اصلی آن‌ها نمایش اطّلاعات است، و توابع دیگری را که برای پردازش داده‌ها و بازگرداندن یک مقدار یا مجموعه‌ای از مقدارها طرّاحی شده‌اند، بنویسید. در نهایت ذخیره کردن تابع‌ها را در فایل‌های جداگانه‌ای که ماژول نامیده می‌شوند می‌آموزید که به سازماندهی فایل‌های اصلی برنامه کمک می‌کنند.

اینجا تابعی ساده به نام greet_user() می‌بینید که یک پیام احوال‌پرسی را چاپ می‌کند:

1
2
3
4
5
def greet_user():
    """Display a simple greeting."""
    print("Hello!")

greet_user()

این مثال ساده‌ترین ساختار یک تابع 68 را نشان می‌دهد. خط ۱ از کلیدواژه‌ی def استفاده می‌کند تا پایتون را مطّلع کند که شما می‌خواهید یک تابع تعریف کنید. این تعریف تابع است که به پایتون می‌گوید نام آن چیست و برای به کار بردن با آن به چه اطّلاعاتی نیاز است. پرانتزها این اطّلاعات را نگه می‌دارند. در این مورد نام تابع greet_user() است و چون برای انجام وظیفه‌اش به هیچ دانسته‌ای نیاز ندارد، پرانتزهای آن خالی مانده است. (با این حال حتّی در این حالت نیز وجود پرانتزها الزامی است) سرانجام تعریف با یک دونقطه پایان می‌یابد.

هر خطّ تورفته‌ای که پس از def greet_user(): بیاید بدنه‌ی تابع را تشکیل می‌دهد. متنِ ۲ نوعی توضیح است که docstring نامیده می‌شود و عملکرد تابع را شرح می‌دهد. Docstringها در علامت‌های نقل قول سه‌تایی قرار می‌گیرند و پایتون هنگام تولید مستندات برای تابع‌های موجود در برنامه‌ی شما به دنبال آن‌ها می‌گردد.

خط print("Hello!") در ۳ تنها خطِ برنامه در بدنه‌ی این تابع است، بنابراین greet_user() تنها یک وظیفه دارد: print("Hello").

زمانی که می‌خواهید از این تابع استفاده کنید، آن را فراخوانی می‌کنید. فراخوانی تابع از پایتون می‌خواهد که کد داخل آن را اجرا کند. برای فراخوانی یک تابع نام آن را می‌نویسید و پس از آن اطّلاعات ضروری را در پرانتز بعد از آن می‌آورید، چنان‌که در ۴ نشان داده شده است. چون اینجا به هیچ اطّلاعاتی نیاز نیست، فراخوانی تابع ما به سادگی و تنها با وارد کردن greet_user() انجام می‌پذیرد. همان‌طور که انتظار داشتیم، این تابع Hello! را چاپ می‌کند:

1
Hello!