"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تحسين التعليمات البرمجية الخاصة بك باستخدام مشغل Walrus في Python: أمثلة من العالم الحقيقي وأنماط مضادة يجب تجنبها

تحسين التعليمات البرمجية الخاصة بك باستخدام مشغل Walrus في Python: أمثلة من العالم الحقيقي وأنماط مضادة يجب تجنبها

تم النشر بتاريخ 2024-08-27
تصفح:349

Optimizing Your Code with Python

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

أمثلة واقعية لاستخدام مشغل Walrus:
1. تبسيط الجمل الشرطية
إحدى حالات الاستخدام الأكثر شيوعًا لمشغل الفظ هي تبسيط العبارات الشرطية. لنفترض أن لدينا دالة تُرجع طول سلسلة نصية ونريد التحقق مما إذا كان الطول أكبر من 10. باستخدام عامل الفظ، يمكننا تعيين طول متغير مباشرةً داخل العبارة الشرطية، مما يوفر لنا سطرًا من التعليمات البرمجية.

مثال على الجملة الشرطية بدون مشغل الفظ

الطول = لين (سلسلة)
إذا كان الطول > 10:
طباعة("السلسلة أطول من 10 أحرف.")

مثال باستخدام مشغل الفظ

إذا (الطول := لين(سلسلة)) > 10:
طباعة("السلسلة أطول من 10 أحرف.")

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

مثال بدون مشغل الفظ

grade1 = compute_grade(student, test1)
Grade2 = compute_grade(student, test2)
إذا (grade1 Grade2) / 2 >= 70:
طباعة("لقد اجتاز الطالب الفصل."

if ((grade1 := compute_grade(student, test1)) (grade2 := compute_grade(student, test2))) / 2 >= 70:
طباعة("لقد اجتاز الطالب الفصل."

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

مثال على فهم القائمة بدون عامل الفظ

النتائج = [حساب_الربح(المبيعات، التكلفة) للمبيعات، التكلفة في بيانات_المبيعات إذا حساب_الربح(المبيعات، التكلفة) > 50]

مثال باستخدام مشغل الفظ

النتائج = [(الربح:= حساب الربح(المبيعات، التكلفة)) للمبيعات، التكلفة في بيانات_المبيعات إذا كان الربح > 50]

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

مثال على فهم القائمة الفوضوية مع مشغل الفظ المتداخل

بيانات_المبيعات = [(100، 70)، (200، 150)، (150، 100)، (300، 200)]
النتائج = [(المبيعات، التكلفة، الربح، نسبة_المبيعات) للمبيعات، التكلفة في بيانات_المبيعات إذا (الربح:= حساب_الربح(المبيعات، التكلفة)) > 50
إذا (نسبة_المبيعات:= المبيعات / التكلفة) > 1.5 إذا (هامش_الربح:= (الربح / المبيعات)) > 0.2

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

مثال لمشغلي الفظ المتداخلين

القيم = [5، 15، 25، 35، 45]
العتبة = 20
النتائج = []
للقيمة في القيم:
إذا (above_threshold := القيمة > العتبة) و(incremented := (new_value := value 10) > 30):
results.append(new_value)
طباعة (النتائج)

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

تعد اختبارات ممارسة شهادة Python الخاصة بـ MyExamCloud أداة مفيدة لأولئك الذين يستعدون للحصول على أي شهادات Python.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/myexamcloud/optimizing-your-code-with-pythons-walrus-operator-real-world-examples-and-anti-patterns-to-avoid-10ii?1 Any التعدي، يرجى الاتصال بـ [email protected] للحذف
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3