الدرس 9 من 20

الدوال والفئات

تعريف الدوال

3 دقيقة للقراءة

الدوال هي كتل من الكود قابلة لإعادة الاستخدام. في تطوير الذكاء الاصطناعي، ستنشئ دوالاً لتنسيق المطالبات واستدعاءات API ومعالجة الاستجابات والمزيد.

بناء جملة الدالة الأساسي

def greet(name):
    """إرجاع رسالة ترحيب."""
    return f"مرحباً، {name}!"

# استدعاء الدالة
message = greet("كلود")  # "مرحباً، كلود!"

المعاملات والوسائط

# المعاملات المطلوبة
def chat(message, model):
    return f"[{model}]: {message}"

# المعاملات الافتراضية
def chat(message, model="gpt-4"):
    return f"[{model}]: {message}"

chat("مرحباً")                  # يستخدم النموذج الافتراضي
chat("مرحباً", model="claude")  # تجاوز الافتراضي

*args و **kwargs

هذه تسمح بمرونة في معالجة الوسائط:

# *args: قبول أي عدد من الوسائط الموضعية
def sum_all(*numbers):
    return sum(numbers)

sum_all(1, 2, 3)        # 6
sum_all(1, 2, 3, 4, 5)  # 15

# **kwargs: قبول أي عدد من وسائط الكلمات المفتاحية
def create_message(**kwargs):
    return kwargs

create_message(role="user", content="مرحباً")
# {'role': 'user', 'content': 'مرحباً'}

# الجمع بين الاثنين
def api_call(endpoint, *args, **kwargs):
    print(f"استدعاء {endpoint}")
    print(f"الوسائط: {args}")
    print(f"kwargs: {kwargs}")

مثال عملي للذكاء الاصطناعي

def format_messages(system_prompt, *user_messages):
    """تنسيق الرسائل لواجهة المحادثة."""
    messages = [{"role": "system", "content": system_prompt}]

    for msg in user_messages:
        messages.append({"role": "user", "content": msg})

    return messages

# الاستخدام
messages = format_messages(
    "أنت مساعد مفيد.",
    "مرحباً!",
    "ماذا يمكنك أن تفعل؟"
)

القيم المُرجعة

# إرجاع قيمة واحدة
def get_model():
    return "gpt-4"

# إرجاع قيم متعددة (كصف)
def get_config():
    return "gpt-4", 0.7, 1000  # النموذج، الحرارة، الرموز القصوى

model, temp, tokens = get_config()

# إرجاع None ضمنياً
def log(message):
    print(message)
    # لا يوجد return = ترجع None

دوال Lambda

دوال مجهولة قصيرة للعمليات البسيطة:

# دالة عادية
def double(x):
    return x * 2

# ما يعادلها بـ Lambda
double = lambda x: x * 2

# استخدام شائع: الفرز
models = [("gpt-4", 0.03), ("gpt-3.5", 0.002)]
sorted_by_price = sorted(models, key=lambda m: m[1])

بعد ذلك، سنتعلم الفئات والبرمجة كائنية التوجه. :::

اختبار

الوحدة 3: الدوال والفئات

خذ الاختبار