🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

فهم if __name__ == “__main__”: في بايثون

⏱️2 min read  ·  275 words

Understanding if __name__ ==

فريق تحرير TechPulse
كتّاب التقنية · 21 مايو 2026
📅 21 مايو 2026⏱ دقيقتان للقراءة📂 Python🏷 Python · البرمجة · Best Practices

إذا كنت قد كتبت كود Python أو قرأت سكريبتات Python، فمن المحتمل أنك واجهت السطر الغامضif __name__ == "__main__":. يظهر هذا النمط في برامج Python لا حصر لها، ومع ذلك يجده العديد من المبتدئين محيرًا. دعونا نزيل الغموض عن هذا التعبير المهم في Python.

🔑 النقطة الأساسية

إذا كنت قد كتبت كود Python أو قرأت سكريبتات Python، فمن المحتمل أنك واجهت السطر الغامض if __name__ == “__main__”:. يظهر هذا النمط في برامج Python لا حصر لها…

ماذا يفعل بالضبط؟

تقومif __name__ == "__main__":الجملة بفحص ما إذا كان سكريبت Python يتم تشغيله مباشرة أو يتم استيراده كوحدة في سكريبت آخر. عندما يقوم Python بتشغيل ملف، فإنه يحدد متغيرًا خاصًا يسمى__name__تعتمد قيمة هذا المتغير على كيفية تنفيذ الكود.

فهم __name__

Understanding __name__

🎨 AI Generated: Understanding __name__

إليك المفهوم الأساسي:

  • عندما تقوم بتشغيل ملف Python مباشرة (على سبيل المثال،python script.py)، يقوم Python بتعيين__name__ to "__main__"
  • عندما تقوم باستيراد هذا الملف كوحدة في سكريبت آخر، يقوم Python بتعيين__name__إلى اسم الوحدة (اسم الملف بدون .py)

مثال عملي

لنلقِ نظرة على مثال ملموس. أنشئ ملفاً يسمىcalculator.py:

python

def add(a, b): return a + b def subtract(a, b): return a - b if __name__ == "__main__": print("Running calculator.py directly") result = add(5, 3) print(f"5 + 3 = {result}")

عندما تقوم بتشغيل هذا الملف مباشرة باستخدامpython calculator.py، سترى:

code

تشغيل calculator.py مباشرة 5 + 3 = 8

ومع ذلك، إذا قمت باستيراد هذا الوحدة في ملف آخر:

python

import calculator result = calculator.add(10, 20) print(result)

الكود داخلif __name__ == "__main__":الكتلة لن يتم تنفيذه. سترى فقط30as output, not the “Running calculator.py directly” message.

لماذا هذا مفيد؟

Why Is This Useful?

🎨 AI Generated: Why Is This Useful?

This pattern provides several important benefits:

1. Code Reusability

You can write functions and classes that can be both imported and run standalone. This makes your code more modular and reusable.

2. Testing and Debugging

You can include test code or example usage within theif __name__ == "__main__":block that runs when you execute the file directly, but doesn't interfere when the module is imported.

3. المرونة بين Script و Module

يمكن لملف Python واحد أن يخدم غرضين مزدوجين: كمكتبة قابلة للاستيراد وكـ script قابل للتنفيذ.

حالات الاستخدام الشائعة

تشغيل Unit Tests

python

def process_data(data): return [x * 2 for x in data] if __name__ == "__main__": test_data = [1, 2, 3, 4, 5] result = process_data(test_data) assert result == [2, 4, 6, 8, 10] print("نجحت جميع الاختبارات!")

Command-Line Interface

python

import sys def main(): if len(sys.argv) > 1: filename = sys.argv[1] process_file(filename) else: print("الاستخدام: python script.py") if __name__ == "__main__": main()

أمثلة توضيحية

python

class DataProcessor: def __init__(self, data): self.data = data def process(self): return sum(self.data) if __name__ == "__main__": processor = DataProcessor([1, 2, 3, 4, 5]) print(f"Sum: {processor.process()}")

Best Practices

Best Practices

🎨 AI Generated: Best Practices

فيما يلي بعض التوصيات عند استخدام هذا النمط:

  • حافظ على النظافة:ضع منطق التنفيذ الرئيسي فيmain()دالة واستدعها منif __name__ == "__main__":الكتلة
  • استخدم للاختبار:قم بتضمين اختبارات بسيطة أو أمثلة استخدام لتوضيح كيفية عمل الوحدة الخاصة بك
  • قم بتضمينه دائماً:حتى لو كنت تعتقد أنك لن تستورد الملف، فمن الممارسات الجيدة استخدام هذا النمط
  • وثق السلوك:أضف تعليقات توضح ما يفعله السكريبت عند تشغيله مباشرة

الخلاصة

تقومif __name__ == "__main__":الـ pattern هو مصطلح أساسي في Python يفصل الكود المخصص للتشغيل عند تنفيذ ملف مباشرة عن الكود الذي يحدد وظائف قابلة للاستيراد. فهم هذا المفهوم سيساعدك على كتابة كود Python أكثر احترافية وقابلية لإعادة الاستخدام وفهم أفضل لبرامج Python التي تصادفها.

في المرة القادمة التي ترى فيها هذا السطر في كود Python، ستعرف بالضبط ما يفعله: يتحقق مما إذا كان السكريبت هو البرنامج الرئيسي أو يتم استيراده كوحدة، وينفذ الكود وفقاً لذلك.

🚀 ابقَ في صدارة منحنى التكنولوجيا

احصل على رؤى تقنية يومية ومراجعات صادقة وأدلة عملية.

اشترك مجانًا — لا رسائل مزعجة أبدًا

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇬🇧 English🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা