"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تفصل النجمة الفردية والمزدوجة (*) في وظائف بيثون؟

كيف تفصل النجمة الفردية والمزدوجة (*) في وظائف بيثون؟

نشر في 2025-02-26
تصفح:431

How Do Single and Double Asterisks (*) Unpack Arguments in Python Functions?

تفريغ الوسيطات في python مع و (مزدوج النجمة/النجمة) *

في python ،

] و * يلعب المشغلون أدوارًا حاسمة في تفريغ الحجج عند الاتصال وظائف. على سبيل المثال ، ضع في اعتبارك الوظيفة:

def add (a ، b): إرجاع A B

يستخدم الكود أدناه * لفك قيم tuple:
القيم = (1 ، 2) s = إضافة (*قيم)

def add(a, b):
    return a   b

s = add (1 ، 2)

values = (1, 2)
s = add(*values)

يقوم النجم المزدوج (**) بإجراء عملية مماثلة للقواميس ، مما يوفر قيمًا للوسائط المسماة. النظر في الوظيفة:

s = add(1, 2)

تفريغ قيم القاموس 2 باستخدام ** يعطي ما يلي: s = add (** date2)
هذا يعادل:

def sum(a, b, c, d):
    return a   b   c   d
مجموعة من

و

: نفس دعوة الوظيفة. على سبيل المثال:
values = (1, 2)
s = add(*values)
القيم 1 = (1 ، 2) القيم 2 = {'c': 10 ، 'd': 15} s = إضافة (*القيم 1 ، ** القيم 2)

هذا يعادل:
values = (1, 2)
s = add(*values)

معلمة تفريغ: بالإضافة إلى تفريغ الوسائط ، يمكن أيضًا استخدام و * للمعلمة تفريغ في تعريفات الوظائف. &&&]
على سبيل المثال: # ... def get_a (** القيم): # ...

values = (1, 2)
s = add(*values)
الآثار المترتبة على الأداء:

الأداء المترتبة على استخدام
s = sum(1, 2, c=10, d=15)
* الحد الأدنى عمومًا. تتضمن عملية التفريغ الحد الأدنى من النفقات العامة ولا تؤثر على كفاءة الوظيفة نفسها. ومع ذلك ، فإن التفريغ المفرط يمكن أن يجعل التعليمات البرمجية أقل قابلية للقراءة وقابل للصيانة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3