دعنا نتحدث عن شيء يسمى الحجج وحجج الكلمات الرئيسية.
أعني ، لقد رأينا ذلك بالفعل من قبل.
الصحيح.
مع وظيفة.
لدينا بالفعل هذه الأحرف الخاصة التي يمكننا استخدامها تسمى args و star star args.
كيف يمكننا استخدام هؤلاء؟
حسنًا ، دعنا نلقي نظرة.
دعونا نحاول الحصول على وظيفة.
دعنا نقول تعريف وسنسمي هذا الفانك الفائق.
بالنسبة للوظيفة الفائقة التي تستقبل نوعًا من الحجج.
وهذه الحجج التي سنستقبلها.
وتذكر ، على الرغم من أنني أسمي هذه الأقواس.
هذا في حد ذاته هو معلمة ، تذكر؟
لكن دعنا نقول أننا نريد فقط إعادة بعض الحجج وقد تتساءل لماذا لا يتعين علينا تحديد
هذه الوظيفة؟
حسنًا ، بعضها موجود بالفعل في بايثون ، كما ترون هنا.
لذا يمكننا فقط إعادة بعض الحجج.
لذلك دعونا نجرب هذا.
دعنا نقول سوبر func.
وإعطائها الحجج.
واحد إثنان ثلاثة أربعة خمسة.
إذا قمت بالنقر فوق تشغيل.
همم.
أحصل على فائق الفانك في الهواء يأخذ حجة موضعية واحدة ولكن خمس حجة في مكانها وهذا منطقي؟
ليس لدي سوى معيار واحد هنا ، وهو حجة موضعية تقبلها.
وأنا أحاول تلخيص ذلك بحيث يتلقى واحدًا فقط ، لكني أعطيها لكل هذه الأشياء التي لا يعرف عنها
شيء.
وهنا يمكننا استخدام شيء كهذا بإضافة نجمة إلى هنا.
نحن نقول ، هذا يمكن أن يقبل أي عدد من الحجج الموضعية مثل هذا.
بقدر ما أريد.
في واقع الأمر ، دعنا نطبع هذا.
إذا قمت بطباعة أقواس النجوم وقمنا بتشغيل هذه الوظيفة.
نرى أن أقواس نجمة الطباعة تعطينا واحدًا ، اثنان ، ثلاثة ، أربعة ، خمسة.
هذه هي جميع المعلمات أو الحجج التي نحصل عليها.
وإذا قمت بالفعل بإزالة النجمة هنا وانقر فوق تشغيل.
انظر إلى ذلك.
أنا بالفعل أحصل على هذا في صيغة tuple.
إذن ، فإن الحجج الموجودة داخل هذه الدالة عبارة عن مجموعة من الحجج التي أعطيها إياها.
واحد إثنان ثلاثة أربعة خمسة.
لذا فإن بعضًا من المجموعة واحد ، اثنان ، ثلاثة ، أربعة ، خمسة ستعطينا الإجابة الصحيحة.
سوف تطبع لنا.
الاجابة.
15.
رائع جدا.
وبهذه الطريقة يمكننا التمديد.
واستخدم قيم النجوم للحصول على دالة يمكنها قبول أي عدد من المعطيات.
إذن ما هذا الآن؟
حسنًا ، هذا.
يسمح لنا باستخدام وسيطات الكلمات الرئيسية.
على سبيل المثال ، لنفترض أن لدي أقواس نجمة نجمة مثل هذه.
وبالمناسبة ، يمكن أن يكون هذا من الناحية الفنية أي شيء.
إذن هذا متغير نبتكره.
لذلك يمكنني تسميته إذا أردت ذلك ، ولكن المعيار هو تسمية args و args لأن المطورين الآخرين يستخدمونه بهذه الطريقة
وهذه هي الطريقة التي يتم بها ذلك في مجتمع Python.
الآن باستخدام أقواس الكلمات الرئيسية ، كما قد تكون خمنت ، يمكنني إضافة كلمات رئيسية مثل العدد واحد يساوي.
خمسة ثم عدد اثنين يساوي عشرة.
لذلك إذا قمت بطباعة الكلمة الرئيسية args وقمت بالنقر فوق تشغيل.
أحصل على قاموس لا شيء.
واحد يساوي خمسة والآن اثنان يساوي عشرة.
لذلك يمكنني فعل شيء مثل جمع مجموع العناصر في الكلمة المفتاحية args.
والاستيلاء على القيم.
الصحيح.
لقد رأينا ذلك من قبل.
ودعنا نلتقط هذا بالفعل ونقوم بحلقة for ونقول العناصر في أقواس الكلمات الرئيسية وقيم النقاط.
تذكر أن تحصل على القيم هنا وهنا ، فقط اجمع الإجماليات.
لنفترض أن الإجمالي هنا يساوي أو زائد يساوي عناصر وسنجمع إجماليًا.
هنا هذا هو في البداية صفر حتى أن البعض.
سيكون بعض args بالإضافة إلى المجموع.
إذا قمت بتشغيل هذا.
أحصل على 30.
الذي يبدو الآن ، هذا يبدو محيرًا بعض الشيء.
لذلك دعنا نتجاوزها.
لدينا أقواس النجوم التي تسمح لنا بالاستيلاء على هذه الحجج الموضعية وتجميع كل شيء.
ولدينا أيضًا أقواس كلمات رئيسية تتيح لنا الحصول على أي عدد من وسيطات الكلمات الرئيسية والحصول على قاموس
يأتي كأقواس كلمات رئيسية ثم استخدامها كما نريد.
في حالتنا ، نحن نقوم بالتكرار على جميع القيم ، لذا فإن العناصر الموجودة في قيم قوس الكلمات الرئيسية ، وبعد
ذلك سأقوم فقط بإجمالي كل هذه العناصر.
احصل على المجموع وأعد المجموع.
الآن هذا مفيد للغاية مرة أخرى لأن Superfund الخاص بنا يمكن أن يأخذ الآن العديد من الحجج ، والعديد من الحجج الموضعية
والكلمات الرئيسية كما نريد.
الآن ، شيء واحد أخير.
هناك دور للترتيب يمكننا القيام به لمعلماتنا هنا.
الصحيح.
إذن ، ترتيب القاعدة هو هذا أولًا في معاملاتنا.
لدينا جيدا المعلمات الفعلية لدينا.
ثم يمكننا عمل أقواس النجوم ، ثم المعلمات الافتراضية.
ثم نجمة.
نجمة.
أقواس الكلمات الرئيسية.
اسمحوا لي أن أريكم ما أعنيه.
إذا أردنا تحديد هذه الوظيفة ، فنحن نريد التأكد من أننا إذا أعطيناها معلمة ،
دعنا نقول الاسم.
يجب أن يأتي ذلك قبل أقواس النجوم.
وإذا كان لدينا معلمات افتراضية ، فيجب أن يأتي ذلك عادةً بعد الأقواس ، ولكن قبل أقواس الكلمات الرئيسية.
إذا فعلت ذلك ، فلنفترض أنني تساوي ارتفاعًا وتأكد من إضافة فاصلة هنا.
لدينا الآن اتباع القاعدة.
وبالمناسبة ، لن تكتب في الواقع وظيفة كهذه لأنها ، بصراحة ، تبدو مربكة
للغاية.
عادة ما تستخدم اثنين فقط من هؤلاء أو ربما تستخدم واحدة منها فقط.
ولكن بهذه الطريقة يمكنني استدعاء هذه الوظيفة بالاسم ثم args ، ثم المعلمة الافتراضية الخاصة بي ، والتي ستكون أنا يساوي
مرتفع ، والتي لنفترض أننا لم نمررها.
ثم لدينا هذا.
لذلك إذا ركضنا هنا.
هذا لا يزال يعمل.
نحن فقط لا نستخدم الاسم وأنا.
لكنك ترى أنني أتبع قاعدة البارامترات ، المعلمات الافتراضية ثم الكلمة الأساسية arx.
حسنا.
نأمل ألا يؤلم رأسك كثيرًا بعد هذا.
خذ قسطًا من الراحة وسأراك في المرة التالية.
مع السلامة.