تعد الوظائف جزءًا أساسيًا من البرمجة في بايثون، مما يسمح لك بتغليف التعليمات البرمجية في كتل قابلة لإعادة الاستخدام. يعد فهم كيفية استدعاء دالة بشكل صحيح أمرًا أساسيًا لكتابة كود بايثون الفعال. في هذه المقالة، سوف نستكشف الطرق المختلفة لاستدعاء الوظائف في بايثون، بما في ذلك تمرير الوسائط، وإرجاع القيم، ومعالجة الاستثناءات.
1. أساسيات الوظيفة
قبل الغوص في استدعاء الدوال، دعونا نراجع أساسيات تعريف الدالة في بايثون:
def greet(): print('Hello, world!')
يحدد هذا وظيفة بسيطة تسمى الترحيب والتي تطبع 'Hello, World!'. لاستدعاء هذه الدالة، ما عليك سوى استخدام اسمها متبوعًا بالأقواس:
greet()
انتاج:
متناظر في جافا
Hello, world!
2. الحجج الوظيفية
يمكن للوظائف في Python أيضًا قبول الوسائط. فيما يلي مثال لوظيفة تأخذ اسمًا كوسيطة وتحيي الشخص بالاسم:
def greet_with_name(name): print(f'Hello, {name}!')
لاستدعاء هذه الدالة مع وسيطة، يمكنك تمرير الوسيطة داخل الأقواس:
greet_with_name('Alice')
انتاج:
Hello, Alice!
3. إرجاع القيم
يمكن للوظائف أيضًا إرجاع القيم باستخدام عبارة الإرجاع. على سبيل المثال، لنقم بإنشاء دالة تحسب مربع الرقم وترجع النتيجة:
def square(x): return x ** 2
لاستخدام القيمة التي تم إرجاعها، يمكنك إسنادها إلى متغير:
result = square(5) print(result)
انتاج:
25
4. الحجج الافتراضية
يمكنك أيضًا تحديد الوظائف باستخدام الوسائط الافتراضية. تحتوي هذه الوسيطات على قيمة افتراضية يتم استخدامها إذا تم استدعاء الدالة دون توفير قيمة لتلك الوسيطة. على سبيل المثال:
كم مدينة في الولايات المتحدة الأمريكية
def greet_with_default(name='world'): print(f'Hello, {name}!') greet_with_default()
انتاج:
Hello, world!
greet_with_default('Bob')
انتاج:
Hello, Bob!
5. عدد متغير من الحجج
يمكن لوظائف Python قبول عدد متغير من الوسائط باستخدام بناء الجملة *args. يسمح لك هذا بتمرير عدد مختلف من الوسائط إلى الوظيفة. على سبيل المثال:
def sum_all(*args): total = 0 for num in args: total += num return total print(sum_all(1, 2, 3, 4, 5))
انتاج:
15
6. وسيطات الكلمات الرئيسية
يمكن للوظائف أيضًا قبول وسائط الكلمات الرئيسية باستخدام بناء جملة **kwargs. يسمح لك هذا بتمرير عدد متغير من وسائط الكلمات الرئيسية إلى الوظيفة. على سبيل المثال:
def print_info(**kwargs): for key, value in kwargs.items(): print(f'{key}: {value}') print_info(name='Alice', age=30, city='New York')
انتاج:
name: Alice age: 30 city: New York
7. استدعاء الوظائف من الوظائف
يمكنك استدعاء وظيفة واحدة من وظيفة أخرى. يتيح لك هذا إعادة استخدام التعليمات البرمجية وإنشاء المزيد من البرامج المعيارية. على سبيل المثال:
com.execlp
def greet_all(*names): for name in names: greet_with_default(name) greet_all('Alice', 'Bob', 'Charlie')
انتاج:
Hello, Alice! Hello, Bob! Hello, Charlie!
8. التعامل مع الاستثناءات
عند استدعاء الوظائف، من المهم التعامل مع الاستثناءات التي قد تحدث. على سبيل المثال، إذا حاولت تحويل سلسلة إلى عدد صحيح، فقد تواجه خطأ ValueError إذا كانت السلسلة ليست عددًا صحيحًا صالحًا:
def convert_to_int(s): try: return int(s) except ValueError: print('Invalid input!') print(convert_to_int('123'))
انتاج:
123
print(convert_to_int('abc'))
انتاج:
Invalid input!
خاتمة
في هذه المقالة، قمنا بتغطية أساسيات استدعاء الوظائف في بايثون، بما في ذلك تمرير الوسائط، وإرجاع القيم، ومعالجة الاستثناءات. تعد الوظائف أداة قوية في لغة Python تسمح لك بكتابة تعليمات برمجية أكثر قابلية للقراءة ونمطية وقابلة للصيانة. من خلال إتقان فن استدعاء الوظائف، يمكنك الارتقاء بمهاراتك في برمجة بايثون إلى المستوى التالي.