العالم العربي
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

(Python) الوظائف : الجزء الأول

استعرض الموضوع التالي استعرض الموضوع السابق اذهب الى الأسفل

(Python) الوظائف : الجزء الأول Empty (Python) الوظائف : الجزء الأول

مُساهمة من طرف Ch.Marwen الثلاثاء 13 أغسطس 2013, 23:12



 (Python) الوظائف : الجزء الأول Star
السلام عليكم ورحمة الله وبركاته 

إن شاء الله تكونوا في تمام الصحة والعافية




لتنظيم كود برنامج يمكننا جمع سلسلة التعليمات في شكل وضائف أو كلاسات . ثم يمكننا أيضا تنظيم هذه المجموعات في عديد من الملفات أي موديلات ، وفي مختلف المسارات لتكوين package .

في هذا الدرس حنبدأ في شرح "الوضائف" 

وسيكون الشرح مقسم على الأجزاء التالية :


*)سياق التنفيذ والتعليمة global

*) التعليمة return

*)وظيفة البرامترات

*) التعليمة lambda

*)تصاميم الوظائف



نقوم بكتابة وظيفة مهمتها نعطيها كلمة ومكان تلك الكلمة في الجملة وعند تنفيذها تقوم بعرض الجملة كاملة على الشاشة :



كود:

>>> def function(word):
print "Salam alikom %s" %word


>>> function('zero-cool')
Salam alikom zero-cool


تعريف الوظيفة في البايثون يبدأ بالكلمة def يتبعها إسم الوظيفة مثل في المثال السابق إسمها function

ثم نجد قوسان ()تحتوي على البرامترات 

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


فالوظيفة هي عبارة عن بلوك من الأسطر لديهم إسم . 

ويمكن تنفيذ هذه الوظيفة من خلال إسمها مثل المتغيرات تماما .

كود الوظيفة هو الذي يحدد سياق تنفيذها الخاص .


سياق التنفيذ والتعليمة global 

عندما تعرف المتغيرات في الكود يقوم مترجم البايثون بوضعهم في إحدى القاموسين التاليين :

القاموس الأول : يحتوي على مجموعة المتغيرات الشاملة

والتي يمكن الوصول إليها عن طريق الدالة ()globals


القاموس الثاني : يحتوي على مجموعة المتغيرات التي يمكن الوصول إليها في لحظة معينة وحسب السياق بالدالة ()locals

عندما نقوم بإستدعاء متغير يتم البحث عن سياقه هل هو محلي (local) أم شامل (global) .

عند تعريف المتغير يتم وضعه :

في السياق المحلي إذا تم تعريفه داخل بلوك (حلقة ، أو وظيفة ...إلخ)

في السياق الشامل إذا تم تعريفه خارج أي بلوك .

وأيضا من المستحيل تعيين المتغيرات الشاملة مباشرة داخل البلوك . 


كود PHP:
الكود:
>>> word = 'zero'
>>> def function(word):
    print(locals())
    print "Salam alikom %s" %word

    
>>> function('cool')
{'word': 'cool'}
Salam alikom cool
>>> print(globals())
{'function': <function function at 0x029FFEB0>, 'word': 'zero', '__builtins__': <module '__builtin__' (built-in)>, '__package__': None, '__name__': '__main__', '__doc__': None}  
للخروج من هذا الحصر يفضل أن نستعمل التعليمة globalالتي تسمح بتحديد المتغير على أنه متغير شامل .

إستعمال التعليمة global 


كود PHP:
الكود:

>>> name = 'zero cool'
>>> 
>>> def func(first,last):
    global name
    name = "%s %s" %(first,last)
    print(locals())
    print(name)

    
>>> func('foulan','foulana')
{'last': 'foulana', 'first': 'foulan'}
foulan foulana
>>> print name
foulan foulana  
التعليمة return 

لافرق بين الوضائف والإجرائات في البايثون بعكس بعض اللغات الأخرى .

الإجرائات في البايثون هي عبارة عن وظائف لاترجع نتيجة واضحة مثل لغة C.

عندما ترجع الوظيفة نتيجة واضحة نستعمل التعليمة return


كود PHP:
الكود:
>>> def sum(num):
    return num + 5

>>> sum(6)
11  
يمكن إرجاع العديد من النتائج المفصولة بفاصل وفي هاته الحالة يقوم المترجع بإرجاع هذه النتائج في صف tuple


كود PHP:
الكود:
>>> def nums():
    return 5, 10, 15

>>> nums()
(5, 10, 15)  

يتبع بإذن الله 


في أمان الله

 


Ch.Marwen
Ch.Marwen
الادارة العليا
الادارة العليا

المتصفح : Google Chrome
الإقامة : Republic of Tunisia
الجنس : ذكر
عدد المساهمات : 25405
نقاط : 103330942
تقييم : 7859
تاريخ الميلاد : 14/01/1990
تاريخ التسجيل : 11/02/2012
العمر : 34

http://www.arabwoorld.com
-----

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع التالي استعرض الموضوع السابق الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى

  • ©phpBB | انشاء منتدى مع أحلى منتدى | منتدى مجاني للدعم و المساعدة | التبليغ عن محتوى مخالف | ملفات تعريف الارتباط التابعة لجهات خارجية | آخر المواضيع