ڪم
هينئر تائين، اسان پنهنجو سمورو ڪوڊ app.py ۾ لکي رهيا آهيون، پر جيئن جيئن اسان جا پروگرام وڌندا وڃن ٿا، تيئن اسان کي پنهنجي ڪوڊ کي ترتيب ڏيڻ لاءِ هڪ بهتر طريقي جي ضرورت آهي. اسان کي اسان جي ڪوڊ کي ننڍن، وڌيڪ منظم، ۽ وڌيڪ برقرار رکڻ واري حصن ۾ ٽوڙڻ جي ضرورت آهي جنهن کي اسين فنڪشن سڏين ٿا. فنڪشن ڪوڊ جي چند لائينن لاء هڪ ڪنٽينر آهي جيڪو هڪ مخصوص ڪم انجام ڏئي ٿو.
مثال طور، توهان اڳ ۾ ئي ڄاڻايو آهي ته ڪجهه تعمير ٿيل ڪمن بابت Python ۾ print()
۽ input()
. هر فنڪشن جو هڪ مقصد آهي ۽ ڄاڻي ٿو ته هڪ مخصوص ڪم ڪيئن ڪجي. تنهن ڪري، جڏهن اسان وڏا پيچيده پروگرام ٺاهيندا آهيون، اسان کي اسان جي ڪوڊ کي ٽوڙڻ گهرجي ننڍن ننڍن حصن ۾، يعني افعال.
اچو ته هن تصور کي سلامي پيغام کي ڇپائڻ لاءِ هڪ پروگرام ٺاهي سمجھون.
print('Hi there!')
print('Welcome aboard!')
هتي اسان وٽ هڪ سادي پروگرام آهي جنهن ۾ صرف ٻه لائنون ڪوڊ آهن. ھاڻي، اچو ته چئون، اسان کي انھن جي ضرورت پوندي ٻين پروگرامن ۾ انھن کي ھڪڙي فنڪشن ۾ رکڻ لاءِ جيڪو اسان ٻيهر استعمال ڪري سگھون ٿا.
اچو ته هڪ مخصوص لفظ متعارف ڪرايو def
Python ۾، جيڪو مختصر آهي وضاحت لاءِ ۽ استعمال ڪيو ويندو آهي هڪ فنڪشن جي وضاحت ڪرڻ لاءِ.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
هاڻي ڪوڊ جو هي بلاڪ هڪ فنڪشن جي وضاحت ڪندو "greet_user
”ان کان پوءِ ڪوڊ جي لائينن سان. جڏهن به هن فنڪشن کي سڏيو ويندو آهي، اهي ٻه لائينون جاري ڪيون وينديون. اچو ته هي استعمال ڪريون:
print('start')
greet_user()
print('finish')
پروگرام کي ترتيب سان عمل ڪيو ويندو آهي، مطلب ته توهان کي پروگرام ۾ سڏڻ کان پهريان هڪ فنڪشن کي بيان ڪرڻو پوندو.
جي پيراميٽر
بيان ڪيل افعال Python جي تعمير ٿيل افعال کان ٿورو مختلف ڪم ڪن ٿا. مثال طور، جي صورت ۾ print()
هڪ فنڪشن، اهو ڪجهه معلومات وٺندو آهي جنهن کي اسين پرنٽ ڪرڻ چاهيون ٿا، پر اسان جو سلام فنڪشن ڪا به معلومات نه ٿو وٺي. ڇا اهو سٺو نه ٿيندو جيڪڏهن توهان هتي استعمال ڪندڙ جو نالو پاس ڪري سگهو ٿا ۽ پوءِ، "هيلو اتي" چوڻ بدران، توهان صارف جو نالو ڇپائي سگهو ٿا؟
توھان ھي ڪري سگھوٿا وضاحت ڪيل فنڪشن جي قوس اندر پيرا ميٽرز شامل ڪندي. اچو ته مان توهان کي ڏيکاريان:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
ھاڻي ”name
” قوس جي اندر هڪ مقامي متغير وانگر ڪم ڪندو ۽ اسان ان کي ڪال ڪرڻ وقت استعمال ڪندڙ جو نالو پاس ڪري سگهون ٿا.
greet_user('Shahbaz')
هاڻي نالو پيٽرولر مقرر ڪيو ويو آهي "Shahbaz
”. اچو ته ان کي استعمال ڪرڻ لاء پروگرام کي تبديل ڪريو.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
غور طلب ڳالهه اها آهي ته پهرئين سٽ ۾ موجود ”نالو“ کي Parameter چئبو آهي، جڏهن ته ڏنل نالو يعني شهباز کي دليل چئبو آهي.
اچو ته اڳتي وڃو ۽ هن پروگرام کي هلائي.
تنهن ڪري انهن پيرا ميٽرز سان، اسان پنهنجي ڪمن ۾ معلومات حاصل ڪري سگهون ٿا.
هاڻي اچو ته ڪجهه دلچسپ ڪريون. اچو ته چئو ته توهان سلامي پيغام ۾ ٻيو نالو شامل ڪرڻ چاهيو ٿا. اهو سادو آهي.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
ھاڻي نوٽ ڪريو ته جڏھن ھڪڙي فنڪشن جو ھڪڙو پيٽرولر آھي، اسان تي فرض آھيون ته ھڪڙي قيمت کي پاس ڪرڻ لاء ان پيراميٽر لاء. جيڪڏهن توهان فنڪشن مان نالو هٽايو ۽ پروگرام هلائيندا، اسان کي هڪ غلطي ملندي. توھان پڻ استعمال ڪري سگھو ٿا گھڻن پيٽرولن کي ھڪڙي ھڪڙي فنڪشن ۾، ڪاما سان الڳ ٿيل.
مثال طور، greet_user(first_name, last_name):
. دليلن کي به ساڳيءَ ريت فارميٽ ڪيو ويندو.
Keyword Arguments
هينئر تائين، اسان اهو سکيو آهي ته جڏهن به اسان پنهنجي ڪمن لاءِ پيرا ميٽرن جي وضاحت ڪريون ٿا ته اسان کي هميشه قدر فراهم ڪرڻ گهرجي ٻي صورت ۾ اسان کي هڪ غلطي ملندي. گذريل پروگرام ۾، دليلن 'Shahbaz'
۽ 'Bhatti'
پوزيشني دليلن کي سڏيو ويندو آهي، مطلب ته پروگرام ۾ انهن جي پوزيشن يا ترتيب جو معاملو.
پٿون ۾، اسان وٽ هڪ ٻيو قسم جو دليل آهي جنهن کي ڪي ورڊ آرگيومينٽس سڏيو ويندو آهي، جنهن لاءِ پوزيشن ڪا اهميت نٿي رکي. اچو ته توهان کي ڏيکاريون ته اهي ڪيئن ڪم ڪن ٿا.
آخري پروگرام ڏسو. اسان ان کي هن طرح تبديل ڪري سگهون ٿا:
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
هاڻي first_name
۽ last_name
لفظ جا پيرا ميٽر آهن. توھان انھن جي جڳھ کي تبديل ڪري سگھو ٿا ۽ نتيجو ساڳيو ٿيندو.
هاڻي ان جو مطلب اهو ناهي ته اسان کي هميشه لفظي دليلن کي استعمال ڪرڻ گهرجي. اڪثر وقت اسين استعمال ڪندا آهيون پوزيشني دليل، پر ڪجهه حالتن ۾، اهي لفظي دليل اسان جي ڪوڊ جي پڙهڻ جي صلاحيت کي بهتر بنائڻ ۾ مدد ڪندا آهن.
اتي ھڪڙو وڌيڪ شيء آھي توھان کي ڄاڻڻ جي ضرورت آھي لفظي دليلن بابت. لفظي دليلن کي هميشه پوزيشني دليلن کان پوءِ اچڻ گهرجي.
واپسي جو بيان
هن وقت تائين اسان سکيو آهي ته فنڪشن ڪيئن ٺاهجي ۽ انهن جي پيراميٽر استعمال ڪري انهن کي معلومات موڪليو. ھاڻي اچو ته سکو ته ڪئين فنڪشن ٺاھيو وڃن جيڪي قدر واپس ڪن. اهو خاص طور تي مفيد آهي جيڪڏهن توهان ڪجهه قسم جي حساب سان ڪري رهيا آهيو ۽ توهان نتيجو واپس ڪرڻ چاهيو ٿا جيڪو توهان جي فنڪشن کي استعمال ڪري رهيو آهي. مون کي ڏيکاريو.
اچو ته هڪ فنڪشن جي وضاحت ڪريون جيڪو هڪ عدد جي چورس کي ڳڻپ ڪندو.
def square(number):
return number*number
اسان هن نمبر کي فنڪشن کان ٻاهر موٽڻ لاءِ واپسي واري بيان کي استعمال ڪيو آهي. ھاڻي، جيڪڏھن اسان ھن فنڪشن کي سڏيندا آھيون، اھو ھڪڙي قدر موٽائي ٿو جھڙو input()
فنڪشن. اچو ته ان کي ٽرمينل تي پرنٽ ڪريو.
توھان بحث ڪري سگھو ٿا ته ساڳيو نتيجو حاصل ڪري سگھجي ٿو بغير واپسي جي بيان کي استعمال ڪرڻ کان سواء. اچو ته ان کي چيڪ ڪريو.
اسان ٻه شيون ڏسون ٿا، نمبر 9، ۽ ٻيو ڪو به نه. هتي ڇا ٿي رهيو آهي؟
جڏهن پائٿون انٽرپريٽر هن ڪوڊ تي عمل ڪندو ته پهريان اهو اسڪوائر فنڪشن کي سڏيندو ۽ ڪنٽرول فنڪشن ڏانهن هليو ويندو. هتي اسان هن ڏنل نمبر جي چورس کي ڳڻيو ۽ پوء ان کي ٽرمينل تي پرنٽ ڪيو.
ھاڻي، ڊفالٽ طور، سڀ فنڪشن واپس نه ٿا ڪن قدر. تنهن ڪري جيڪڏهن اسان وٽ هتي واپسي جو بيان نه آهي، ڊفالٽ طور پٿون ڪو به واپس نه ٿو ڪري. ڪو به اهڙو اعتراض ناهي جيڪو قدر جي غير موجودگي جي نمائندگي ڪري. اهو سي، سي ++، جاوا ۽ جاوا اسڪرپٽ ۾ ڪجھ به نه يا ناڪاري وانگر آهي.
ويڙهيو!
مون کي اميد آهي ته توهان فنڪشن جي اهميت کي سمجهي ورتو آهي.
اهي پائٿون سکيا جو هڪ اهم پاسو آهن جيڪڏهن توهان پنهنجي ڪوڊنگ ڪيريئر دوران وڏي ۽ پيچيده پروگرام لکڻ جي منصوبابندي ڪري رهيا آهيو.
جواب ڇڏي وڃو