פרמטרים אקטואליים ופורמליים#
כפי שראינו, כשמגדירים פונקציה אנחנו צריכים להגדיר את הפרמטרים (הקלט) שלה. למשל בפונקציה circumference שבנינו ביחידה הקודמת, קבענו שלפונקציה שני פרמטרים - x ו- y. הפרמטרים האלו נקראים פרמטרים פורמליים, כי הם משמשים להגדרה של הפונקציה. בשלב הגדרת הפונקציה אין לפרמטרים האלו ערכים ספציפיים. ערכים ספציפיים יינתנו בעת הקריאה לפונקציה מאוחר יותר.
בכל פעם שקוראים לפונקציה מעבירים לה ערכים ספציפיים. ערכים אלו נקראים פרמטרים אקטואליים. למשל, בעת הקריאה:
circumference(5,7)
הפרמטרים האקטואליים הם 5 ו- 7.
מה שקורה בעצם בעת קריאה לפונקציה הוא זה: הפרמטרים האקטואליים מוצבים לתוך הפרמטרים הפורמליים לפי הסדר. בדוגמה הנ”ל, 5 מוצב לתוך x ו- 7 לתוך y. לאחר הצבה זו, הפונקציה יכולה להתחיל לפעול כפי שהוסבר קודם.
ניראה עוד דוגמה:
def what(st, c):
if c in st:
return True
else:
return False
print(what("hello", "t"))
print(what("hello", "e"))
הפונקציה בודקת האם תו כלשהו c מופיע בתוך מחרוזת st. שני אלו - st ו-c הם פרמטרים פורמליים. בעת קריאה לפונקציה, למשל what("hello", "t") מועברים לה פרמטרים אקטואליים - “hello” ו-“t”. הערך האקטואלי “hello” מוצב לתוך הפרמטר הפורמלי st, ואילו “t” מוצב לתוך c. וכעת הפונקציה מתחילה לעבוד.
בדוגמה שלפניכם קטע קוד קצר בו מוגדרת פונקציה וקריאה לה:
def what(string, char):
if char*3 in string:
return True
else:
return False
letter = "a"
text = "hello aaa world"
print(what(text, letter))
True
שימו לב
אין שום בעיה שיוגדרו פרמטרים אקטואליים עם שמות זהים לאלו של הפרמטרים הפורמליים.