الدوال المتقدمة في بايثون
1. الدوال المتداخلة (Nested Functions)
الدوال المتداخلة هي دوال تُعرف داخل دوال أخرى، وتستخدم لتنظيم الكود وجعل الدالة الرئيسية أقصر وأكثر وضوحًا.
def outer_function(text):
def inner_function():
print(text)
inner_function()
outer_function("Hello from nested function!")
2. دوال اللامبدا (Lambda Functions)
Lambda Functions هي دوال صغيرة تُستخدم لإنشاء دوال بسيطة تُكتب عادة في سطر واحد، وتُستخدم عندما نحتاج دالة بسيطة لفترة قصيرة.
square = lambda x: x * x
print(square(5)) # Output: 25
3. المعاملات غير المحددة (Arbitrary Arguments)
يمكنك استخدام *args و **kwargs لتمرير عدد غير محدود من المعاملات للدالة.
def print_info(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key} = {value}")
print_info("Hello", "World", name="Alice", age=25)
4. التمرير حسب القيمة والإشارة
القيمة (Value): يتم تمرير نسخة من القيمة، ولا يتغير المتغير الأصلي.
الإشارة (Reference): يتم تمرير الإشارة إلى الموقع في الذاكرة، وقد يؤدي إلى تعديل المتغير الأصلي.
تمرين تطبيقي
اكتب دالة تستخدم *args و **kwargs، وجرّب كتابة دالة lambda لإيجاد العدد الأكبر من قائمتين من الأعداد.

تعليقات
إرسال تعليق