الفرق بين المراجعتين ل"Python/lambda expressions"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'يمكن إنشاء دوال لا تحمل أسماء باستخدام الكلمة المفتاحية <code>lambda</code>، وتأخذ هذه الدوال الصيغة...')
 
ط (نقل عبد اللطيف ايمش صفحة Python/lambda-expressions إلى Python/lambda expressions)
 
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
يمكن إنشاء دوال لا تحمل أسماء باستخدام الكلمة المفتاحية <code>lambda</code>، وتأخذ هذه الدوال الصيغة التالية:<syntaxhighlight>
+
<noinclude>{{DISPLAYTITLE:تعابير lambda في بايثون}}</noinclude>
 +
يمكن إنشاء دوال لا تحمل أسماء باستخدام الكلمة المفتاحية <code>lambda</code>، وتأخذ هذه الدوال الصيغة التالية:<syntaxhighlight lang="python3">
 
lambda arguments: expression
 
lambda arguments: expression
 
</syntaxhighlight>تسلك هذه الصيغة المختصرة سلوك دالة معرفة بالطريقة التالية:<syntaxhighlight lang="python3">
 
</syntaxhighlight>تسلك هذه الصيغة المختصرة سلوك دالة معرفة بالطريقة التالية:<syntaxhighlight lang="python3">
سطر 6: سطر 7:
 
</syntaxhighlight>على سبيل المثال، تعيد الدالة التالية مجموع الوسيطين الخاصين بها:<syntaxhighlight lang="python3">
 
</syntaxhighlight>على سبيل المثال، تعيد الدالة التالية مجموع الوسيطين الخاصين بها:<syntaxhighlight lang="python3">
 
lambda a, b: a+b
 
lambda a, b: a+b
</syntaxhighlight>يمكن استخدام دوال <code>lambda</code> عند الحاجة إلى كائنات الدالة (function objects)، وتأخذ هذه الدوال تعبيرًا واحدًا فقط، وهي تعدّ صيغة مختصرة للطريقة الاعتيادية في تعريف الدوال.
+
</syntaxhighlight>يمكن استخدام دوال <code>lambda</code> عند الحاجة إلى كائنات الدالة (function objects)، وتأخذ هذه الدوال تعبيرًا واحدًا فقط، وهي تعدّ صيغةً مختصرةً للطريقة الاعتيادية في تعريف الدوال.
  
 
كما هو الحال مع تعريفات الدوال المتداخلة، يمكن لدوال <code>lambda</code> الإشارة إلى متغيرات من النطاق الحاوي لها، تعيد الدالة الاعتيادية دالة <code>lambda</code>:<syntaxhighlight lang="python3">
 
كما هو الحال مع تعريفات الدوال المتداخلة، يمكن لدوال <code>lambda</code> الإشارة إلى متغيرات من النطاق الحاوي لها، تعيد الدالة الاعتيادية دالة <code>lambda</code>:<syntaxhighlight lang="python3">
سطر 25: سطر 26:
  
 
== مصادر ==
 
== مصادر ==
صفحة [https://docs.python.org/3/tutorial/controlflow.html#lambda-expressions More Control Flow Tools] في توثيق بايثون الرسمي.
+
* صفحة [https://docs.python.org/3/tutorial/controlflow.html#lambda-expressions More Control Flow Tools] في توثيق بايثون الرسمي.
 
[[تصنيف:Python]]
 
[[تصنيف:Python]]
 
[[تصنيف:Python Functions]]
 
[[تصنيف:Python Functions]]

المراجعة الحالية بتاريخ 14:36، 29 مايو 2018

يمكن إنشاء دوال لا تحمل أسماء باستخدام الكلمة المفتاحية lambda، وتأخذ هذه الدوال الصيغة التالية:

lambda arguments: expression

تسلك هذه الصيغة المختصرة سلوك دالة معرفة بالطريقة التالية:

def <lambda>(arguments):
    return expression

على سبيل المثال، تعيد الدالة التالية مجموع الوسيطين الخاصين بها:

lambda a, b: a+b

يمكن استخدام دوال lambda عند الحاجة إلى كائنات الدالة (function objects)، وتأخذ هذه الدوال تعبيرًا واحدًا فقط، وهي تعدّ صيغةً مختصرةً للطريقة الاعتيادية في تعريف الدوال. كما هو الحال مع تعريفات الدوال المتداخلة، يمكن لدوال lambda الإشارة إلى متغيرات من النطاق الحاوي لها، تعيد الدالة الاعتيادية دالة lambda:

>>> def make_incrementor(n):
...     return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42
>>> f(1)
43

يمكن أيضًا تمرير دالة صغيرة كمعامل:

>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

مصادر