بــيــان إداري:
نظرًا لتكرار المواضيع المخالفة لقوانين المجتمع، والتي سببها عدم الاطّلاع على ، فقد قررت الإدارة بالإجماع: حذف كل المواضيع المخالفة فورًا ودون الرجوع في ذلك إلى أصحابها، لذا نرجو الالتزام بالقوانين .
ما معنى هذا السطر؟
هذا السطر ينفذ ما تحته إذا تم تشغيل الكود بشكل مباشر لا عن طريق الإستيراد
لأن __name__ هو متغير خاص عند تشغيل الكود بشكل مباشر تسند إليه القيمة "__main__" أما عند الاستيراد فتسند إليه قيم أخرى
مثال:
كود:
[LEFT]if __name__ == "__main__":
# will run only if module directly run
print "I am being run directly"
else:
# will run only if module imported
print "I am being imported"
[/LEFT]
وهذا بسبب أن البايثون لايملك دالة main ظاهرة بل جميع الكود يكون داخل هذه الدالة ضمنيا
كود:
[LEFT][RIGHT][LEFT]# file one.py
def func():
print("func() in one.py")
print("top-level in one.py")
if __name__ == "__main__":
print("one.py is being run directly")
else:
print("one.py is being imported into another module")
مثال آخر:
[/LEFT]
كود:
[LEFT][RIGHT][LEFT][RIGHT][LEFT] # file two.py
import one
print("top-level in two.py")
one.func()
if __name__ == "__main__":
print("two.py is being run directly")
else:
print("two.py is being imported into another module")
[/LEFT]
[/RIGHT]
[/LEFT]
[/RIGHT]
[/LEFT]
[/RIGHT]
[/LEFT]
عند تشغيل ملف one.py
كود:
[LEFT]python one.py
[/LEFT]
تكون المخرجات
كود:
[LEFT]top-level in one.py
one.py is being run directly[/LEFT]
وعند تشغيل الملف two.py
كود:
[LEFT]python two.py
[/LEFT]
كود:
[LEFT]top-level in one.py
one.py is being imported into another module
top-level in two.py
func() in one.py
two.py is being run directly