soomaali Python Functions and Modular Programming


Hordhac: Waa maxay Function?
Bal ka fikir function inuu yahay sida shaqaale khaas ah oo aad u tababartay inuu qabto hal shaqo oo keliya. Tusaale ahaan, waxaad leedahay shaqaale shaqadiisu tahay oo keliya inuu sameeyo shaah. Mar kasta oo aad shaah u baahato, uma baahnid inaad dib u barato sida loo sameeyo sonkorta, caleenta, iyo biyaha. Waxaad si fudud ugu yeeraysaa shaqaalihii shaaha qaabilsanaa, isaguna wuu kuu diyaarinayaa.
Python-ka, function-ku waa sidaas oo kale. Waa qayb koodh ah oo qabata hal hawl oo gaar ah. Waxaad qortaa hal mar, ka dibna waad u yeeran kartaa mar kasta oo aad u baahato. Tani waxay kaa caawinaysaa inaad iska ilaaliso ku celcelinta koodhka, taas oo loo yaqaan mabaadi'da DRY (Don't Repeat Yourself).
Aan aragno tusaale fudud. Halkii aad sidan u qori lahayd mar kasta:
Python
print("--------------------")
print("Soo Dhawoow")
print("--------------------")
print("--------------------")
print("Soo Dhawoow")
print("--------------------")
Waxaad samayn kartaa function gaaban:
Python
def soo_dhaweyn():
print("--------------------")
print("Soo Dhawoow")
print("--------------------")
# Hadda u yeedh function-ka markaad u baahato
soo_dhaweyn()
soo_dhaweyn()
Tusaalahan oo gaaban wuxuu muujinayaa sida function-ku u nadiifiyo koodhkaaga.
Qeexida Function iyo Function Return
Markaad samaynayso function, waxaad isticmaalaysaa ereyga def. Mararka qaarkood, waxaad doonaysaa in function-kaagu uu shaqo qabto ka dibna kuu soo celiyo natiijo. Markaas waxaad isticmaalaysaa return. return waa sida shaqaalahaagii oo shaahii kuu keenay markuu diyaariyey.
Halkan waa tusaale fudud oo isku daraya laba lambar:
Python
def isku_dar(a, b):
natiijo = a + b
return natiijo # Waxa uu soo celinayaa natiijada
# Isticmaal function-ka oo keydi natiijada
wadarta = isku_dar(5, 3)
print(wadarta)
# Output: 8
Function Arguments: Default, Keyword, *args, **kwargs
Arguments-ku waa xogta aad siiso function-kaaga si uu ula shaqeeyo.
Default Arguments
Mararka qaarkood, waxaad rabtaa in function-ku yeesho qiime iskiis ah haddii aan mid kale la siin. Tani waxay fududaynaysaa isticmaalka function-ka.
Tusaale gaaban oo salaan ah:
Python
def salaam(magac="Marti"): # "Marti" waa qiimaha default-ka ah
print(f"Salaam, {magac}!")
salaam("Cali") # Wuxuu isticmaalayaa "Cali"
salaam() # Maadaama aan waxba la siin, wuxuu isticmaalayaa "Marti"
Output:
Salaam, Cali!
Salaam, Marti!
Keyword Arguments
Waxaad siin kartaa qiimayaasha adigoo magacaabaya, markaas kala horrayntu muhiim maaha. Tani waxay ka dhigaysaa koodhka mid is-caddaynaya.
Tusaale gaaban oo macluumaad qof lagu muujinayo:
Python
def muuji_macluumaad(magac, da):
print(f"Magaca: {magac}, Da'da: {da}")
# Hadda u yeedh adigoo isticmaalaya keyword arguments
muuji_macluumaad(da=25, magac="Aamina") # Kala horrayntu muhiim maaha
Output:
Magaca: Aamina, Da'da: 25
*args – Arguments aan la tirin karin
Isticmaal *args markaad rabto inaad siiso function-ka tiro arguments ah oo aan cayinnayn. Waa sida inaad bac ku shubato waxyaabo badan oo aadan tirin.
Tusaale gaaban oo lagu isku darayo lambarro aan la tirin karin:
Python
def isku_dar_dhammaan(*lambarro):
return sum(lambarro)
print(isku_dar_dhammaan(1, 2, 3)) # Output: 6
print(isku_dar_dhammaan(10, 20, 30, 40)) # Output: 100
**kwargs – Keyword Arguments aan la tirin karin
Isticmaal **kwargs markaad rabto inaad siiso function-ka tiro keyword arguments ah oo aan cayinnayn (kuwa magaca leh). Wuxuu ku ururiyaa dictionary.
Tusaale gaaban oo muujinaya macluumaad kala duwan:
Python
def soo_bandhig_faahfaahin(**faahfaahin):
print(faahfaahin)
soo_bandhig_faahfaahin(magac="Faarax", shaqo="Injineer", magaalo="Hargeisa")
# Output: {'magac': 'Faarax', 'shaqo': 'Injineer', 'magaalo': 'Hargeisa'}
Baaxadda Isbeddelayaasha: Local vs Global
- Local variable: Waa isbeddele ku dhex jira function oo keliya. Bannaanka lagama arki karo. Waa sida sir aad adiga iyo saaxiibkaa wadaagtaan oo aan cid kale ogeyn.
- Global variable: Waa isbeddele meel kasta oo koodhkaaga ah laga arki karo. Waa sida war dadka oo dhan wada gaaray.
Tusaale fudud oo kala duwanaanshahooda muujinaya:
Python
x = "Bannaanka ayaan ahay (Global)"
def tijaabi_scope():
x = "Gudaha ayaan ahay (Local)"
print(x)
tijaabi_scope()
print(x)
Output:
Gudaha ayaan ahay (Local)
Bannaanka ayaan ahay (Global)
Importing Modules in Python 📚
Module waa fayl Python ah oo ka kooban functions aad isticmaali karto. Fikradda aasaasiga ah waa in koodhkaaga aad u kala qaybiso faylal yaryar si uu u noqdo mid habaysan.
Aan samayno laba fayl oo fudud:
1. Faylka hore: xisaab.py Faylkan waxaan ku kaydinaynaa functions xisaabta ah.
Python
# xisaab.py
def isku_dar(a, b):
return a + b
def kala_jar(a, b):
return a - b
2. Faylka labaad: main.py Kani waa barnaamijka weyn ee isticmaalaya functions-kii aan ku kaydinay xisaab.py.
Python
# main.py
import xisaab # Halkan waxaan ku soo darsanay module-kii xisaab
natiijo1 = xisaab.isku_dar(10, 5)
print(f"Isku darku waa: {natiijo1}")
natiijo2 = xisaab.kala_jar(10, 5)
print(f"Kala jarku waa: {natiijo2}")
Markaad main.py maamusho, wuxuu soo darsanayaa koodhkii xisaab.py wuxuuna isticmaalayaa functions-kiisii.
Map, Filter, iyo Lambda Functions
Kuwani waa habab awood leh oo loo isticmaalo liisaska (lists).
Lambda Functions
Lambda waa function yar oo aan magac lahayn, oo hal sadar ku qoran. Waxaa loo isticmaalaa shaqooyinka fudud ee degdegga ah.
Tusaale gaaban: function labanlaabaya lambar.
Python
labanlaab = lambda x: x * 2
print(labanlaab(5)) # Output: 10
map()
map() wuxuu ku dabaqaa function shay kasta oo ku jira liiska. Wuxuu u shaqeeyaa sidii wax beddele.
Tusaale gaaban: Liis lambarro ah oo aan mid kasta labanlaabayno.
Python
lambarro = [1, 2, 3, 4]
lambarro_cusub = list(map(lambda x: x * 2, lambarro))
print(lambarro_cusub)
# Output: [2, 4, 6, 8]
filter()
filter() wuxuu liiska ka dhex xushaa oo keliya shay-yada buuxiya shuruud gaar ah.
Tusaale gaaban: Waxaan liis ka soo saaraynaa lambarrada ka weyn 10.
Python
lambarro = [5, 12, 3, 20, 8]
kuwa_waaweyn = list(filter(lambda x: x > 10, lambarro))
print(kuwa_waaweyn)
# Output: [12, 20]

WRITTEN BY
Mubaarik Osman
a creative developer and digital strategist who shares insights on technology, design, and business growth.