Ali Ahmed55 نشر 2 مايو أرسل تقرير نشر 2 مايو (معدل) السلام عليكم اي افضل طريق لكتب كود باثيون واي فيه دول يعتبر كود نظيف ده device = "cuda" if torch.cuda.is_available() else "cpu" والا ده device = "cuda" if torch.cuda.is_available(): pass else "cpu": pass اي الفرق بين الثنين دول هل في فرق في السرعه او الذكرا وهكذا يعني تم التعديل في 2 مايو بواسطة Mustafa Suleiman تعديل عنوان السؤال 3 اقتباس
0 Mustafa Suleiman نشر 2 مايو أرسل تقرير نشر 2 مايو بالطبع الطريقة الثانية، فمن الوهلة الأولى تستطيع معرفة وظيفة الكود وآلية عمله. هناك مقولة جيدة، وهي "من الصعب قراءة الكود ومن السهل كتابته". ففي الكود البسيط، الطريقة الأولى أفضل، لكن في المشاريع الحقيقية لكن يكون هناك كود بسيط وصغير، لذا المحافظة على كود قابل للقراءة وليس مختصر أفضل. 1 اقتباس
0 Ali Ahmed55 نشر 2 مايو الكاتب أرسل تقرير نشر 2 مايو بتاريخ 2 دقائق مضت قال Mustafa Suleiman: بالطبع الطريقة الثانية، فمن الوهلة الأولى تستطيع معرفة وظيفة الكود وآلية عمله. هناك مقولة جيدة، وهي "من الصعب قراءة الكود ومن السهل كتابته". ففي الكود البسيط، الطريقة الأولى أفضل، لكن في المشاريع الحقيقية لكن يكون هناك كود بسيط وصغير، لذا المحافظة على كود قابل للقراءة وليس مختصر أفضل. تمام شكرااا لحضرتك ونا كمان بتفق مع حضرتك جدا ولكن في ناس بتكب بالطريق الاول فا كانت عاوز اشوف الموضع ده اقتباس
0 El Sayed El Tohamy نشر 2 مايو أرسل تقرير نشر 2 مايو وعليكم السلام ورحمة الله، دعنا أولًا نتفق على شيء هام جدًا، وهو إذا لديك اختياران كلاهما صحيح، فلا يوجد تفضيل مطلق (أي دائمًا)، بمعنى لا يوجد اختيار هو الأفضل دائمًا، ولكن يوجد اختيار هو الأنسب للحالة التي بين أيدينا، (أؤكد أن الخيارين صحيحان فنحن هنا لا نقارن بين ممارسة صحيحة وأخرى خاطئة). كلتا الشفرتين صحيحتان سواء كصيغة أو كممارسة، نأتي هنا للأنسب، أيهما أنسب؟ هذا يتوقف على الحالة كما وضحت، ففي الكثير من الأحيان يفضل المبرمجون الطريقة الثانية كما وضح مهندس مصطفى @Mustafa Suleiman لأنها طريقة واضحة ومباشرة وخصوصًا إذا يوجد مبتدئين بالفريق فربما لا يعرفون الطريق الأولى. وبالمناسبة الطريقة الأولى مشهورة جدًا في لغات البرمجة وتسمى "العامل الثلاثي" ternary operator ويفضلها الكثير من المبرمجين لأنها رائعة في إعطاء المتغير إحدى قيمتين بناء على شرط معين، فمن يعتاد عليها يدمنها حرفيًا (وأنا واحد منهم)، ولكن هل أستخدمها في كل مكان؟ بالطبع لا ولكن هناك حالات مناسبة لها وحالات أخرى غير مناسبة، من أكبر الفوائد لهذه الطريقة أنها تجنب الوقوع في الأخطاء، انظر للشيفرات التالية .. device = "cuda" if torch.cuda.is_available(): device = "cude" else "cpu": devic = "cpu" هل لاحظت شيئًا؟ لقد حدث خطأ إملائي في اسم المتغير بالسطر الأخير، وهذا سيسبب في مشاكل كبيرة جدًا، لأن بايثون سيعتبر أنك تريد تعريف متغير جديد اسمه devic ولا يعلم أنه تقصد المتغير device، هذه من ضمن فوائد العامل الثلاثي، ولكن كما قلت، يستخدم بحذر. الخلاصة: تعتمد الطريقة على الحالة التي بين يديك، فإذا كان الفريق يحتوي العديد من المبتدئين، فالطريقة الثانية أنسب، أما إذا لديهم خلفية جيدة عن العامل الثلاثي، فالطريقة الثانية ستكون أنسب في حالة إعطاء إحدى قيمتين للمتغير بناء على شرط معين. 1 اقتباس
0 Ali Ahmed55 نشر 2 مايو الكاتب أرسل تقرير نشر 2 مايو بتاريخ 27 دقائق مضت قال El Sayed El Tohamy: وعليكم السلام ورحمة الله، دعنا أولًا نتفق على شيء هام جدًا، وهو إذا لديك اختياران كلاهما صحيح، فلا يوجد تفضيل مطلق (أي دائمًا)، بمعنى لا يوجد اختيار هو الأفضل دائمًا، ولكن يوجد اختيار هو الأنسب للحالة التي بين أيدينا، (أؤكد أن الخيارين صحيحان فنحن هنا لا نقارن بين ممارسة صحيحة وأخرى خاطئة). كلتا الشفرتين صحيحتان سواء كصيغة أو كممارسة، نأتي هنا للأنسب، أيهما أنسب؟ هذا يتوقف على الحالة كما وضحت، ففي الكثير من الأحيان يفضل المبرمجون الطريقة الثانية كما وضح مهندس مصطفى @Mustafa Suleiman لأنها طريقة واضحة ومباشرة وخصوصًا إذا يوجد مبتدئين بالفريق فربما لا يعرفون الطريق الأولى. وبالمناسبة الطريقة الأولى مشهورة جدًا في لغات البرمجة وتسمى "العامل الثلاثي" ternary operator ويفضلها الكثير من المبرمجين لأنها رائعة في إعطاء المتغير إحدى قيمتين بناء على شرط معين، فمن يعتاد عليها يدمنها حرفيًا (وأنا واحد منهم)، ولكن هل أستخدمها في كل مكان؟ بالطبع لا ولكن هناك حالات مناسبة لها وحالات أخرى غير مناسبة، من أكبر الفوائد لهذه الطريقة أنها تجنب الوقوع في الأخطاء، انظر للشيفرات التالية .. device = "cuda" if torch.cuda.is_available(): device = "cude" else "cpu": devic = "cpu" هل لاحظت شيئًا؟ لقد حدث خطأ إملائي في اسم المتغير بالسطر الأخير، وهذا سيسبب في مشاكل كبيرة جدًا، لأن بايثون سيعتبر أنك تريد تعريف متغير جديد اسمه devic ولا يعلم أنه تقصد المتغير device، هذه من ضمن فوائد العامل الثلاثي، ولكن كما قلت، يستخدم بحذر. الخلاصة: تعتمد الطريقة على الحالة التي بين يديك، فإذا كان الفريق يحتوي العديد من المبتدئين، فالطريقة الثانية أنسب، أما إذا لديهم خلفية جيدة عن العامل الثلاثي، فالطريقة الثانية ستكون أنسب في حالة إعطاء إحدى قيمتين للمتغير بناء على شرط معين. شكراا لحضرتك جدا اقتباس
السؤال
Ali Ahmed55
السلام عليكم
اي افضل طريق لكتب كود باثيون واي فيه دول يعتبر كود نظيف
ده
والا ده
اي الفرق بين الثنين دول هل في فرق في السرعه او الذكرا وهكذا يعني
تم التعديل في بواسطة Mustafa Suleimanتعديل عنوان السؤال
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.