ک تابع مجموعه ای از دستورات تحت نام است که می تواند به طور مستقل اجرا شود. توابع برای انجام یک کار خاص استفاده می شوند. توابع به ما امکان می دهند تا یک مسئله بزرگتر را به زیر بخشهای کوچکتر تقسیم کنیم تا به طور کارآمد حل شود ، مفهوم قابلیت استفاده مجدد کد را بخوانید و کد را برای خواندن و فهم آسان تر کنید.
پایتون توابع و روشهای مختلفی را برای نوشتن کد به راحتی فراهم می کند و به این توابع و روشها توابع و روشهای داخلی گفته می شود. پایتون به ما امکان می دهد توابع و روش های خود را ایجاد کنیم و به آنها توابع و روش های تعریف شده توسط کاربر گفته می شود.
ایجاد توابع تعریف شده توسط کاربر در پایتون
زبان برنامه نویسی پایتون کلمه کلیدی def را برای ایجاد توابع ارائه می دهد. نحو کلی ایجاد توابع به شرح زیر است.
نحو
def ( لیست_ پارامترها):
بیانیه_1
بیانیه_2
statement_3
...
- لیست پارامترهای موجود در تعریف عملکرد باید با کاما جدا شود.
- در پایتون ، هر تابع به طور پیش فرض مقدار None را برمی گرداند. با این حال ، ما می توانیم ارزش خود را بازگردانیم.
- هر عملکردی برای اجرای کد خود به فراخوانی عملکردی نیاز دارد.
برای ایجاد یک عملکرد تعریف شده توسط کاربر ، مثال زیر را در نظر بگیرید کد پایتون.
کد پایتون برای ایجاد عملکرد تعریف شده توسط کاربر.
def sample_function():
print('This is a user-defined function')
در کد مثال بالا ، ما در حال ایجاد یک تابع تعریف شده توسط کاربر به نام sample_function () بدون هیچ پارامتری هستیم.
فراخوانی یک تابع در پایتون
در پایتون از نام تابع برای برقراری تماس تابع استفاده می کنیم. اگر تابع به پارامترهایی نیاز دارد ، باید هنگام فراخوانی آنها را منتقل کنیم. نحو عمومی فراخوانی یک تابع به شرح زیر است.
نحو
function_name (پارامتر_1 ، پارامتر_2 ، ...)
کد مثال زیر را در نظر بگیرید.
کد پایتون برای ایجاد عملکرد تعریف شده توسط کاربر.
def sample_function():
print('This is a user-defined function')
sample_function()
وقتی کد مثال بالا را اجرا می کنیم ، این خروجی زیر را تولید می کند.

عبور پارامترها به یک تابع در پایتون
در پایتون ، تمام پارامترها فقط با استفاده از pass توسط مرجع منتقل می شوند. مثال زیر را در نظر بگیرید.
عبور کد پایتون به پارامتر.
def sample_function(name):
print(f'Hello! {name}')
name = 'Raja'
name = 'Rama'
sample_function(name)
print(f'name outside the function is {name}')
وقتی کد مثال بالا را اجرا می کنیم ، این خروجی زیر را تولید می کند.

در برنامه مثال بالا ، تغییرات ایجاد شده در تابع فراخوانی شده بر مقدار نام خارج از تابع تأثیر نمی گذارد. زیرا در اینجا متغیر name دوباره تعریف شده است ، بنابراین برای تابع به یک متغیر محلی تبدیل می شود. بنابراین ، وقتی مقدار 'name' را در تابع تغییر می دهیم ، ارجاع جدیدی به آن ایجاد می کند ، اما نام خارج از تابع را تغییر نمی دهد.
انتقال مجموعه ها به عنوان پارامتر به یک تابع در پایتون
در پایتون ، ما همچنین می توانیم یک مجموعه را به عنوان یک لیست ، tuple ، set یا فرهنگ لغت به عنوان یک پارامتر به یک تابع منتقل کنیم. در اینجا تغییرات ایجاد شده در مجموعه بر مجموعه خارج از عملکرد نیز تأثیر می گذارد. اما اگر دوباره تعریف شود ، مجموعه خارج از عملکرد تحت تأثیر قرار نمی گیرد. زیرا مجموعه تعریف شده مجدد برای عملکرد محلی می شود. به عنوان مثال ، کد زیر را در نظر بگیرید.
کد پایتون برای ارسال لیستی به عنوان پارامتر.
def sample_function(list_1, list_2):
list_1.append([6, 7, 8])
print(f'Inside function list 1 is {list_1}')
list_2 = [40, 50, 60]
print(f'Inside function list 2 is {list_2}')
my_list_1 = [1, 2, 3, 4, 5]
my_list_2 = [10, 20, 30]
sample_function(my_list_1, my_list_2)
print(f'Outside function list 1 is {my_list_1}')
print(f'Outside function list 2 is {my_list_2}')
وقتی کد مثال بالا را اجرا می کنیم ، این خروجی زیر را تولید می کند.

در کد مثال بالا ، list_1 اصلاح شده است ، بنابراین تغییرات ایجاد شده در عملکرد خارج از عملکرد نیز تأثیر می گذارد. اما list_2 دوباره تعریف شد ، این بر my_list_2 خارج از عملکرد تأثیر نمی گذارد.