وظائف بايثون

تتيح لنا الوظيفة إنشاء مجموعة من التعليمات التي يمكننا تشغيلها عند الحاجة.

الوظائف ضرورية فيPythonوفي العديد من لغات البرمجة الأخرى لإنشاء برامج ذات مغزى ، لأنها تسمح لنا بتفكيك البرنامج إلى أجزاء يمكن التحكم فيها ، فهي تعزز إمكانية القراءة وإعادة استخدام الكود.

هنا مثال على وظيفة تسمىhelloالتي تطبع "مرحبًا!":

def hello():
    print('Hello!')

هذه هي الوظيفةتعريف. هناك اسم (hello) والجسم ، مجموعة التعليمات ، وهو الجزء الذي يتبع القولون ويتم وضعه بمستوى واحد على اليمين.

لتشغيل هذه الوظيفة ، يجب أن نسميها. هذا هو بناء الجملة لاستدعاء الوظيفة:

hello()

يمكننا تنفيذ هذه الوظيفة مرة واحدة أو عدة مرات.

اسم الوظيفة،hello، مهم جدا. يجب أن يكون وصفيًا ، بحيث يمكن لأي شخص يسميها أن يتخيل ما تفعله الوظيفة.

يمكن أن تقبل الوظيفة معلمة واحدة أو أكثر:

def hello(name):
    print('Hello ' + name + '!')

في هذه الحالة نسمي الدالة تمرير الوسيطة

hello('Roger')

نحن نتصلالمعطياتالقيم المقبولة بواسطة الدالة داخل تعريف الوظيفة ، والحججالقيم التي نمررها إلى الدالة عندما نسميها. من الشائع الخلط بيننا وبين هذا التمييز.

يمكن أن تحتوي الوسيطة على قيمة افتراضية يتم تطبيقها إذا لم يتم تحديدها:

def hello(name='my friend'):
    print('Hello ' + name + '!')

hello() #Hello my friend!

إليك كيف يمكننا قبول عدة معاملات:

def hello(name, age):
    print('Hello ' + name + ', you are ' + str(age) + ' years old!')

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

hello('Roger', 8)

يتم تمرير المعلمات عن طريق المرجع. جميع الأنواع في بايثون هي كائنات ولكن بعضها غير قابل للتغيير ، بما في ذلك الأعداد الصحيحة ، والمنطقية ، والعوامات ، والسلاسل ، والجداول. هذا يعني أنك إذا قمت بتمريرها كمعلمات وقمت بتعديل قيمتها داخل الدالة ، فلن تنعكس القيمة الجديدة خارج الدالة:

def change(value):
    value = 2

val = 1 change(val)

print(val) #1

إذا قمت بتمرير كائن غير قابل للتغيير ، وقمت بتغيير إحدى خصائصه ، فسوف ينعكس التغيير في الخارج.

يمكن للدالة أن ترجع قيمة ، باستخدامreturnبيان. على سبيل المثال في هذه الحالة نعيدnameاسم المعلمة:

def hello(name):
    print('Hello ' + name + '!')
    return name

عندما تجتمع الوظيفة معreturnالبيان ، تنتهي الوظيفة.

يمكننا حذف القيمة:

def hello(name):
    print('Hello ' + name + '!')
    return

يمكننا الحصول على تعليمة الإرجاع داخل الشرط ، وهي طريقة شائعة لإنهاء دالة إذا لم يتم استيفاء شرط البداية:

def hello(name):
    if not name:
        return
    print('Hello ' + name + '!')

إذا استدعينا الدالة تمرير قيمة يتم تقييمهاFalse، مثل سلسلة فارغة ، يتم إنهاء الوظيفة قبل الوصول إلىprint()بيان.

يمكنك إرجاع قيم متعددة باستخدام قيم مفصولة بفاصلة:

def hello(name):
    print('Hello ' + name + '!')
    return name, 'Roger', 8

في هذه الحالة الاتصالhello('Syd')القيمة المعادة هي مجموعة تحتوي على هذه القيم الثلاث:('Syd', 'Roger', 8).


المزيد من دروس بيثون: