كيفية استدعاء دالة في بايثون (مثال)

ما هي الوظيفة في بايثون؟

A وظيفة في بايثون هو جزء من التعليمات البرمجية الذي يتم تشغيله عند الرجوع إليه. يتم استخدامه للاستفادة من الكود في أكثر من مكان في البرنامج. ويسمى أيضًا الطريقة أو الإجراء. توفر لغة Python العديد من الوظائف المضمنة مثل print() وput() وcompile() وexec() وما إلى ذلك، ولكنها تمنحك أيضًا الحرية في إنشاء وظائفك الخاصة.

كيفية تحديد واستدعاء وظيفة في بايثون

يتم تعريف الوظيفة في بايثون بواسطة "محدد" عبارة متبوعة باسم الدالة والأقواس ( ( ) )

على سبيل المثال:

دعونا نحدد دالة باستخدام الأمر "def func1():" ونستدعي الوظيفة. سيكون إخراج الوظيفة "أنا أتعلم وظيفة بايثون".

تعريف واستدعاء دالة في بايثون

وظيفة وظيفة الطباعة 1() يستدعي وظيفة def func1(): ويطبع الأمر " أنا أتعلم وظيفة بايثون لا شيء."

هناك مجموعة من القواعد في بايثون لتحديد الوظيفة.

  • يجب وضع أي وسائط أو معلمات إدخال داخل هذه الأقواس
  • يمكن أن تكون العبارة الأولى للوظيفة عبارة عن سلسلة مستندات اختيارية أو سلسلة وثائق للوظيفة
  • يبدأ الكود الموجود داخل كل دالة بنقطتين (:) ويجب وضع مسافة بادئة له (مسافة)
  • تخرج العبارة return (التعبير) من إحدى الوظائف، مما يؤدي بشكل اختياري إلى إعادة قيمة إلى المتصل. بيان الإرجاع بدون وسيطات هو نفس عبارة الإرجاع بلا.

أهمية المسافة البادئة (الفضاء) في بايثون

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

تتبع بايثون نمطًا معينًا من المسافة البادئة لتعريف الكود، منذ ذلك الحين لا تحتوي وظائف بايثون على أي بداية أو نهاية واضحة مثل الأقواس المتعرجة للإشارة إلى بداية الوظيفة وتوقفها، بل يجب الاعتماد على هذه المسافة البادئة. هنا نأخذ مثالاً بسيطًا باستخدام أمر "الطباعة". عندما نكتب وظيفة "طباعة" أسفل الوظيفة المحددة 1 (): سيظهر "خطأ في المسافة البادئة: من المتوقع وجود كتلة ذات مسافة بادئة".

تعريف واستدعاء دالة في بايثون

الآن، عند إضافة المسافة البادئة (المسافة) أمام وظيفة "الطباعة"، يجب أن تتم الطباعة كما هو متوقع.

تعريف واستدعاء دالة في بايثون

مسافة بادئة واحدة على الأقل تكفي لجعل التعليمات البرمجية الخاصة بك تعمل بنجاح. ولكن كأفضل ممارسة، يُنصح بترك حوالي 3-4 مسافة بادئة لاستدعاء وظيفتك.

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

تعريف واستدعاء دالة في بايثون

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

تعريف واستدعاء دالة في بايثون

كيف قيمة إرجاع الدالة؟

يحدد أمر الإرجاع في Python القيمة التي يجب إعادتها إلى المتصل بالوظيفة. دعونا نفهم هذا مع فولوwing مثال

الخطوة 1) لا تقوم الدالة بإرجاع أي شيء

هنا - نرى عندما لا تكون الوظيفة "عودة". على سبيل المثال، نريد المربع 4، ويجب أن يعطي الإجابة "16" عند تنفيذ الكود. وهو ما يظهر عندما نستخدم رمز "print x*x" ببساطة، ولكن عندما تستدعي الدالة "print Square" فإنها تعطي "None" كمخرج. وذلك لأنه عند استدعاء الدالة، لا يحدث التكرار ويسقط في نهاية الدالة. تقوم Python بإرجاع "None" لفشلها في نهاية الوظيفة.

قيمة إرجاع الدالة

الخطوة 2) استبدل أمر الطباعة بأمر التعيين

لتوضيح ذلك، نستبدل أمر الطباعة بأمر التعيين. دعونا نتحقق من الإخراج.

قيمة إرجاع الدالة

عندما تقوم بتشغيل الأمر "طباعة مربع (4)" فإنه يقوم في الواقع بإرجاع قيمة الكائن لأنه ليس لدينا أي وظيفة محددة لتشغيلها هنا فإنه يقوم بإرجاع "لا شيء".

الخطوة 3) استخدم وظيفة "الإرجاع" وقم بتنفيذ التعليمات البرمجية

الآن، سنرى كيفية استرداد الإخراج باستخدام أمر "return". عند استخدام وظيفة "الإرجاع" وتنفيذ الكود، سيعطي الإخراج "16".

قيمة إرجاع الدالة

الخطوة 4) قم بتشغيل الأمر "مربع الطباعة"

الوظائف في بايثون هي في حد ذاتها كائن، والكائن له بعض القيمة. سنرى هنا كيف تتعامل بايثون مع كائن ما. عند تشغيل الأمر "مربع الطباعة" فإنه يقوم بإرجاع قيمة الكائن. نظرًا لأننا لم نمرر أي وسيطة، فليس لدينا أي وظيفة محددة لتشغيلها هنا، فهي تُرجع قيمة افتراضية (0x021B2D30) وهي موقع الكائن. في برنامج بايثون العملي، ربما لن تحتاج إلى القيام بذلك على الإطلاق.

قيمة إرجاع الدالة

الحجج في الوظائف

الوسيطة هي القيمة التي يتم تمريرها إلى الدالة عند استدعائها.

بمعنى آخر، من جانب الاستدعاء، فهي وسيطة ومن جانب الوظيفة فهي معلمة.

دعونا نرى كيف يعمل Python Args –

الخطوة 1) يتم الإعلان عن الوسائط في تعريف الوظيفة. أثناء استدعاء الدالة، يمكنك تمرير قيم تلك الوسائط كما هو موضح أدناه

الحجج في الوظائف

الخطوة 2) للإعلان عن قيمة افتراضية للوسيطة، قم بتعيين قيمة لها في تعريف الدالة.

الحجج في الوظائف

على سبيل المثال: x ليس له قيم افتراضية. القيم الافتراضية لـ y=0. عندما نقوم بتوفير وسيطة واحدة فقط أثناء استدعاء دالة الضرب، تقوم بايثون بتعيين القيمة المقدمة إلى x مع الاحتفاظ بقيمة y=0. وبالتالي مضاعفة x*y=0

تحديد واستدعاء وظيفة في بايثون

الخطوة 3) هذه المرة سنقوم بتغيير القيمة إلى y=2 بدلاً من القيمة الافتراضية y=0، وستعيد الناتج بالشكل (4×2)=8.

الحجج في الوظائف

الخطوة 4) يمكنك أيضًا تغيير الترتيب الذي يمكن به تمرير الوسائط في Python. قمنا هنا بعكس ترتيب القيمة x وy إلى x=4 وy=2.

الحجج في الوظائف

الخطوة 5) يمكن أيضًا تمرير وسيطات متعددة كمصفوفة. هنا في المثال نستدعي الوسائط المتعددة (1,2,3,4,5) عن طريق استدعاء الدالة (*args).

على سبيل المثال: لقد أعلنا عن وسائط متعددة كرقم (1,2,3,4,5) عندما نستدعي الدالة (*args)؛ يطبع الناتج كـ (1,2,3,4,5،XNUMX،XNUMX،XNUMX،XNUMX)

الحجج في الوظائف

نصائح:

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

إليك كود Python 3 الكامل

#define a function
def func1():
   print ("I am learning Python function")
   print ("still in func1")
   
func1()

def square(x):
  	return x*x
print(square(4))

def multiply(x,y=0):
	print("value of x=",x)
	print("value of y=",y)
    
	return x*y
  
print(multiply(y=2,x=4))

إليك كود Python 2 الكامل

#define a function
def func1():
   print " I am learning Python function"
   print " still in func1"
   
func1()

def square(x):
  	return x*x
print square(4)

def multiply(x,y=0):
	print"value of x=",x
	print"value of y=",y
    
	return x*y
  
print multiply(y=2,x=4)

نبذة عامة

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

  • الوظيفة التي يحددها صفر بيان
  • تبدأ كتلة التعليمات البرمجية داخل كل دالة بنقطتين (:) ويجب وضع مسافة بادئة لها (مسافة)
  • يجب وضع أي وسيطات أو معلمات إدخال داخل هذه الأقواس، وما إلى ذلك.
  • يجب ترك مسافة بادئة واحدة على الأقل قبل الكود بعد إعلان الوظيفة
  • يجب الحفاظ على نفس نمط المسافة البادئة في جميع أنحاء الكود داخل وظيفة def
  • للحصول على أفضل الممارسات، من الأفضل استخدام ثلاث أو أربع مسافات بادئة قبل العبارة
  • يمكنك استخدام أمر "return" لإرجاع القيم إلى استدعاء الوظيفة.
  • ستطبع Python قيمة عشوائية مثل (0x021B2D30) عندما لا يتم توفير الوسيطة لوظيفة الاستدعاء. مثال "وظيفة الطباعة".
  • من ناحية الاستدعاء، فهي وسيطة ومن ناحية الوظيفة فهي معلمة
  • القيمة الافتراضية في الوسيطة - عندما نقوم بتوفير وسيطة واحدة فقط أثناء استدعاء دالة الضرب أو أي وظيفة أخرى، تقوم بايثون بتعيين الوسيطة الأخرى بشكل افتراضي
  • تمكنك بايثون من عكس ترتيب الوسيطة أيضًا