Google search engine
Homeبلاگبرنامه نویسیFunction – توابع در پایتون

Function – توابع در پایتون

در پایتون ۳ همه چیز شیء است. Function ها هم در پایتون شیء هستند.توابع در پایتون جزء First Class Citizens هستند یعنی به صورت داینامیک می توان آن ها را ساخت ، نابود کردو یا به عنوان ورودی به تابع دیگر داد و یا return کرد.

چرا از توابع استفاده می کنیم؟

 

زمانی که نیاز داریم تا از یک بلوک کد چندین بار استفاده کنیم می توانیم آن بلوک را به یک Function نسبت دهیم و با فراخوانی تابع تمام دستورات آن بلوک را اجرا کنیم بدون آنکه نیاز به تکرار و بازنویسی کدها داشته باشیم به علاوه اگر زمانی بخواهیم بخشی از دستورات آن بلوک کد را تغییر دهیم به جای آنکه چندین بار این کار را انجام دهیم ، تنها در Function تعریف شده ، تغییرات را اعمال می کنیم.

دقت داشته باشید که بر خلاف بسیاری از زبان های برنامه نویسی مثل JAVA که برای بلوک بندی کدها از {} استفاده می شود در پایتون از تو رفتگی استفاده می کنیم. مفسر پایتون تنها دستوراتی را به عنوان کدهای بدنه Function می پذیرد که نسبت به بخش اصلی تورفته باشد و در صورت عدم رعایت تورفتگی بدنه تابع ناقص خواهد بود و با فراخوانی تابع دستورات مورد نظر اجرا نخواهد شد.

برای ایجاد توابع از Def استفاده می کنیم.معمولاً نام توابع با حروف کوچک است و در بین نام از _ استفاده می کنیم.

مثال Function

[code]
:(Def foo(x<<<
y=x**2
(print(y
(foo(7<<<
۴۹
 
[/code]
 
 

 در حقیقت شناسه ای که با Def به تابع نسبت می دهیم مانند یک متغییر است.

کلمه Def نیز دز اینجا مانند عملگر = برای انتساب Function به این متغیر عمل می کند بنابراین می توان هر متغیر دیگری را نیز به یک Function نسبت داد

[code]
:()Def foo<<<
(‘print(‘test

foo<<<
<function foo at 0x03B307CB>

 
[/code]
 
 
 

محل قرارگیری در حافظه را می آورد.

 
[code]
 
()Foo<<<
test
Boo=foo<<<
Boo<<<
<function foo at 0x03B307CB>
[/code]

 

 
 

 

می بینیم همان محل را نشان می دهد.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments

محمد علی مرادی on معرفی ابزار Hping
ابوالفضل رضی پور on دانلود تمام نسخه های VMware-ESXi HPE
محمد محمدی ساره on اموزش بکاپ گیری mysql در asterisk
بهنوش حیدری on رجیستر کردن IP Phone در CUCM
محسن دمیرچی لو on اموزش نصب کامل issabel روی vmware
ابوالفضل رضی ‍‍پور on آموزش کریو کنترل (Kerio Control) __ بخش هفت
ابوالفضل رضی پور 1 on اموزش نصب کامل issabel روی vmware
ابوالفضل رضی پور on پارتیشن بندی الستیکس 4
محمدرضاقرباني گوگاني on فیلم اموزشی ساخت raid 1+0 برای سرور hp g9