פונקציות מחלקה ראשונה ב- Python

פונקציות מחלקה ראשונה ב- 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  

הֶסבֵּר:

  • פונקציות הוספה וחיסור מאוחסנות במילון.
  • הם נגישים באמצעות המפתחות שלהם ומבוצעים ישירות.
חידון מוצע חידון ערוך 8 שאלות

איזה מהבאים מתאר בצורה הטובה ביותר פונקציה מהשורה הראשונה בשפות תכנות?

  • א

    פונקציה שניתן לקרוא לה רק מתוך הטווח שלה.

  • ב

    פונקציה שניתן להקצות למשתנים המועברים כארגומנטים ומוחזרים מפונקציות אחרות כמו כל אובייקט אחר.

  • ג

    פונקציה שניתן להגדיר רק ברמה העליונה של מודול.

  • ד

    פונקציה שניתן להפעיל רק בהקשר מסוים.

הֶסבֵּר:


בהקשר של פונקציות ממדרגה ראשונה מהי פונקציה מסדר גבוה יותר?

  • א

    פונקציה שיכולה להחזיר רק סוגי נתונים פרימיטיביים.

  • ב

    פונקציה שיכולה לקחת פונקציות אחרות כארגומנטים או להחזיר אותן כתוצאות.

  • ג

    פונקציה שמוגדרת בתוך פונקציה אחרת אך לא ניתנת להחזרה.

  • ד

    פונקציה שפועלת בשרשור נפרד.

הֶסבֵּר:


מה יהיה הפלט של הקוד הבא?

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 מתייחס לפונקציות ביחס למשתנים?

  • א

    פונקציות הן אובייקטים סטטיים

  • ב

    הפונקציות הן קבועות ולא ניתן להקצות אותן מחדש

  • ג

    הפונקציות הן אזרחיות מהשורה הראשונה וניתן לאחסן אותן עברו והקצאה מחדש

  • ד

    יש להכריז על פונקציות גלובליות כדי להשתמש בהן

הֶסבֵּר:

להיות אזרחים מהשורה הראשונה פירושו שניתן להקצות פונקציות שעברו והוחזרו כמו חפצים אחרים.

פונקציות מחלקה ראשונה ב- Pythonהחידון הסתיים בהצלחה הציון שלך:   2 /8 דיוק:  0% התחבר כדי להציג הסבר 1 /8 1 /8 < Previous הבא >