در این بخش به صورت مختصر به توضیح تابع میپردازیم. توضیحات بیشتر درباره تابع در بخش شیگرایی داده خواهدشد.
تابع در پایتون مانند تابع در ریاضیات و بقیه زبانها، شامل یک یا چند ورودی که به آنها آرگومان (argument) گفته میشود و یک خروجی است که با انجام مجموعهای از محاسبات این خروجی تولید میشود.
برای ساختن یک تابع در پایتون از کلیدواژه def و برای خروجی دادن از کلیدواژه return استفاده میکنیم. شکل کلی تعریف تابع در پایتون به شکل زیر است:
def function(arg1, arg2, ...):
# statments and return
pass
برای ورودیها و یا خروجی در پایتون جنس خاصی در نظر گرفته نمیشود. برای نمونه در مثال زیر ورودی تابع هم میتواند عدد باشد و هم میتواند رشته (string) باشد.
>>> def f(n):
... return n+n
...
>>> f(2)
4
>>> f('2')
'22'
توجه کنید که عملگر + در رشتهها، آنها را به هم میچسباند و در مثال بالا هم '2' به خودش چسبیده و خروجی تابع '22' شده است.
در پایتون تابع یک شیء کلاس-اول (first-class) است. فرض کنید یک تابع به نام f دارید، سپس متغیر g را برابر با f قرار میدهید. حالا g دقیقا مانند f عمل میکند. نوعی که پایتون برای توابع در نظر میگیرد function است.
برای درک این موضوع به مفسر زیر دقت کنید :
>>> def f(a):
... return a
...
>>> f(10)
10
>>> g = f
>>> g(10)
10
>>> type(g)
<class 'function'>
>>> f(f(10))
10
>>> f(f)(10)
10
توجه : خروجی f(f) خود تابع f است (تابع f به گونهای تعریف شده است که هر آرگومانی که میگیرد همان را برمیگرداند). در نتیجه f(f)(10) برابر با f(10) است.