פונקציות מחלקה ראשונה ב- Python
ב-Python מתייחסים לפונקציות כאל אובייקטים מהשורה הראשונה. זה אומר שניתן להשתמש בהם בדיוק כמו מחרוזות מספרים או כל משתנה אחר. אתה יכול:
- הקצה פונקציות למשתנים.
- העבר אותם כארגומנטים לפונקציות אחרות.
- החזר אותם מפונקציות.
- אחסן אותם במבני נתונים כגון רשימות או מילונים.
יכולת זו מאפשרת לך לכתוב קוד מודולרי וחזק לשימוש חוזר.
מאפיינים של פונקציות מהשורה הראשונה
לפונקציות ב-Python יש את המאפיינים החשובים הבאים. בואו נראה אותם אחד אחד עם דוגמאות:
1. הקצאת פונקציות למשתנים
אנחנו יכולים להקצות פונקציה למשתנה והשתמש במשתנה כדי לקרוא לפונקציה.
דוּגמָה:
Python def msg ( name ): return f 'Hello { name } !' # Assigning the function to a variable f = msg # Calling the function using the variable print ( f ( 'Emma' ))
תְפוּקָה
Hello Emma!
הֶסבֵּר:
- הפונקציה msg מוקצית למשתנה f.
- כעת ניתן להשתמש ב-f כדי לקרוא ל-msg שמראה שפונקציות מתנהגות כמו משתנים.
2. העברת פונקציות כטיעונים
פונקציות יכולות להיות עבר כטיעונים לפונקציות אחרות המאפשרות פונקציות מסדר גבוה יותר .
דוּגמָה:
Python def msg ( name ): return f 'Hello { name } !' def fun1 ( fun2 name ): return fun2 ( name ) # Passing the msg function as an argument print ( fun1 ( msg 'Alex' ))
תְפוּקָה
Hello Alex!
הֶסבֵּר:
- הפונקציה fun1 לוקחת פונקציה נוספת (fun2) כקלט.
- msg מועבר ל-fun1 ואז קורא לו עם 'Alex'.
3. החזרת פונקציות מפונקציות אחרות
פונקציה יכולה להחזיר פונקציה אחרת המאפשר הקמת מפעלי פונקציה.
דוּגמָה:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
תְפוּקָה
Message: Hello World!
הֶסבֵּר:
- הפונקציה fun1 מגדירה פונקציה נוספת fun2 ומחזירה אותה.
- func מאחסן את הפונקציה המוחזרת fun2 שניתן לבצע מאוחר יותר.
ניתן לאחסן פונקציות במבני נתונים כמו רשימות אוֹ מילונים .
דוּגמָה:
Python def add ( x y ): return x + y def subtract ( x y ): return x - y # Storing functions in a dictionary d = { 'add' : add 'subtract' : subtract } # Calling functions from the dictionary print ( d [ 'add' ]( 5 3 )) print ( d [ 'subtract' ]( 5 3 ))
תְפוּקָה
8 2
הֶסבֵּר:
- פונקציות הוספה וחיסור מאוחסנות במילון.
- הם נגישים באמצעות המפתחות שלהם ומבוצעים ישירות.
איזה מהבאים מתאר בצורה הטובה ביותר פונקציה מהשורה הראשונה בשפות תכנות?
- א
פונקציה שניתן לקרוא לה רק מתוך הטווח שלה.
- ב
פונקציה שניתן להקצות למשתנים המועברים כארגומנטים ומוחזרים מפונקציות אחרות כמו כל אובייקט אחר.
- ג
פונקציה שניתן להגדיר רק ברמה העליונה של מודול.
- ד
פונקציה שניתן להפעיל רק בהקשר מסוים.
בהקשר של פונקציות ממדרגה ראשונה מהי פונקציה מסדר גבוה יותר?
- א
פונקציה שיכולה להחזיר רק סוגי נתונים פרימיטיביים.
- ב
פונקציה שיכולה לקחת פונקציות אחרות כארגומנטים או להחזיר אותן כתוצאות.
- ג
פונקציה שמוגדרת בתוך פונקציה אחרת אך לא ניתנת להחזרה.
- ד
פונקציה שפועלת בשרשור נפרד.
מה יהיה הפלט של הקוד הבא?
def greet (שם):
חזרה f'Hello {name}'
say_hello = לברך
print(say_hello('Gek'))
- א
שלום שלום
- ב
לְבָרֵך
- ג
שלום חנון
- ד
TypeError
ניתן להקצות פונקציות למשתנים. כאן say_hello הופך להתייחסות נוספת לברך.
איזה מהבאים אינו מאפיין של פונקציות ממדרגה ראשונה?
- א
ניתן לאחסן פונקציות במבני נתונים
- ב
ניתן להקצות פונקציות למשתנים
- ג
פונקציות יכולות להחזיר פונקציות אחרות
- ד
פונקציות יכולות להחזיר רק טיפוסים פרימיטיביים
פונקציות מהשורה הראשונה יכולות להחזיר כל סוג כולל פונקציות אחרות - לא מוגבל לפרימיטיבים.
מה יהיה הפלט של הקוד הזה?
def outer():
def inner():
החזר 'פונקציה פנימית'
לחזור פנימית
func = outer()
print(func())
- א
תפקוד פנימי
- ב
פְּנִימִי
- ג
חִיצוֹנִי
- ד
שְׁגִיאָה
outer() מחזיר את הפונקציה הפנימית ו-func() קורא לה ומחזיר את המחרוזת שלה.
איזה מהבאים אינו מאפיין פונקציות ממדרגה ראשונה?
- א
ניתן לשייך אותם למשתנים.
- ב
ניתן להעביר אותם כארגומנטים לפונקציות אחרות.
- ג
ניתן להגדיר אותם רק פעם אחת בתוכנית.
- ד
ניתן להחזיר אותם מפונקציות אחרות.
מה הפלט של הקוד הבא?
def make_multiplier(n):
מכפיל def(x):
החזר x * n
מכפיל החזר
double = make_multiplier(2)
print(double(5))
- א
7
- ב
10
- ג
25
- ד
שְׁגִיאָה
make_multiplier(2) מחזירה פונקציה המכפילה את הארגומנט שלה ב-2. אז double(5) מחזיר 10.
איך Python מתייחס לפונקציות ביחס למשתנים?
- א
פונקציות הן אובייקטים סטטיים
- ב
הפונקציות הן קבועות ולא ניתן להקצות אותן מחדש
- ג
הפונקציות הן אזרחיות מהשורה הראשונה וניתן לאחסן אותן עברו והקצאה מחדש
- ד
יש להכריז על פונקציות גלובליות כדי להשתמש בהן
להיות אזרחים מהשורה הראשונה פירושו שניתן להקצות פונקציות שעברו והוחזרו כמו חפצים אחרים.
החידון הסתיים בהצלחה הציון שלך: 2 /8 דיוק: 0% התחבר כדי להציג הסבר 1 /8 1 /8 < Previous הבא >