الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار حول تنفيذ كود

بدأه SalehZubir في 27 مارس 2010 · 4 رد · 553 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اثناء دراستي وجدت هذا المثال وقمت بتطبيقه ونفذ معي بدون اي مشاكل على idle

def newprinntf(fmt, *args, **kwargs):
    print "fmt:",fmt
    print "*args:",args
    print "**kwargs:",kwargs
    if kwargs.has_key("verbose"):
        print "Verbose..."
newprinntf("This is some FMT",1,2,3,4,5,6,verbose=True, cleanup=True, use_ssl=False)

سوألي هو

1- من يستطيع ان يشرح لي ما الذي حدث لأني لم افهم بذبط

2-متى استخدم هذا الاسلوب في كتابة الكود

وجزاكم الله كل خير

#2

عليكم السلام

المثال من كتاب البايثون مش كدا ؟ ياريت كنت قلت بما انى انا الكاتب وبتواجد بردو هنا فى المنتدى فأقدر اعيد صياغة اجزاء واحسنها

عموما بالنسبة للدالة newprintf فالفكرة كالتالى فى نوع المعاملات

1- انها تكون عنصر واحد وفى الحالة دى fmt وهو المفروض هيكون "This is some FMT"

2- *args بتعبر عن عدد غير محدد من المعاملات

وهنا هتكون المعاملات دى

1,2,3,4,5,6

وتقدر تتعامل معاها بوظائف ال list

3- **kwargs بتعبر عن قاموس dict بيتم تمريره بصيغة مفتاح وقيمة

verbose=True, cleanup=True, use_ssl=False

وتقدر تتعامل بيها بوظائف ال dict

fmt:  This is some FMT
*args:  (1, 2, 3, 4, 5, 6)
**kwargs:  {'use_ssl': False, 'cleanup': True, 'verbose': True}

اما الإستخدام فلما تشوف انت انه مناسب مش اكتر يعنى انت ممكن تعمل حاجة بدل كل الدراما دى وتمرر list و تمرر dict

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 27 مارس 2010 في 17:09

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

اولاً اسأل الله ان يجعل هذا الكتاب في موازين حسناتك

ثانياً جزاك الله خير اخي الكريم على هذا الشرح

وان شاء الله كل ما وجدت ملاحظة في الكتاب سأخبرك بها على الفور

#4

على نفس المثال لاحظت وجود هذا الكود

if kwargs.has_key("verbose"):        print "Verbose..."

مالغرض من وجود هذا الكود

رغم اني قد حذفته من المثال ومازال المثال ينفذ بشكل جيد

#5

الهدف منها كان توضيح ان ينفع تستخدم الطريقة has_key فى kwargs مش اكتر

تأكيد على انها قاموس مش اكتر

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

مواضيع مشابهة