اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

بالنسبة لsys.argv هي الطريقة التي يتم الوصول إلى الarguments المعطاة للبايثون script.

على سبيل المثال إذا كان لديك script به الكود الآتي وقمت بحفظه في ملف script.py:

import sys

for arg in sys.argv:
  print(arg)

وقمت بإستدعاءه عن طريق الcommand line كالآتي:

python script.py arg1 arg2 arg3

سيكون المخرج هو:

script.py
arg1
arg2
arg3

وهو ما تم تمريره في الcommand line.

أما بالنسبة ل:

if __name__ == '__main__':

تستخدم في الملفات التي يراد إستخدامها بطريقتين، الأولى هي كبرنامج مستقل، والثانية إستدعائها في ملف آخر.

مثلاً إذا كان لديك الملف example.py وبه الآتي:

if __name__=='__main__':
  print('im running as the main program')

def helper(a):
  return 2*a

هذا الملف إذا تم تشغيله من خلال الcommand line سيقوم بطباعة 'im running as the main program'، أما إذا تم إستدعاءه داخل ملف آخر مثلا:

import example
print(example.helper(2))

فلن يتم طباعة الجملة، ولكن يمكن إستخدام الدوال والمتغيرات المعرفة بداخله، وبهذه الطريقة يمكن إستخدام الملف بطريقتين، بكونه البرنامج الرئيسي، أو إستخدامه كملف يتم إستدعاءه وإستخدام المتغيرات المعرفة بداخله. وهذه التفرقة تتم عن طريق الكشف على المتغير __name__ إذا كان مساوي ل'__main__' أم لا.

  • 0
نشر (معدل)

وعليكم السلام ورحمة الله

sys argv هي القيم التي نقوم بتمريرها للسكريبت من خلال نافدة الاوامر

وهي تعتبر ك جدول يحتوي على الرقم و على القيمة المرافقة له

متال

python script.py Hi World
sys.argv[0] = script.py
sys.argv[1] = HI
sys.argv[2] = World

ومهمتها هي ادخال البيانات من نافدة الاوامر عوض طلب اليوزر ادخالها

بالتوفيق

تم التعديل في بواسطة عبد العزيز الوهاب
  • 0
نشر
بتاريخ 9 ساعات قال عبد العزيز الوهاب:

وعليكم السلام ورحمة الله

sys argv هي القيم التي نقوم بتمريرها للسكريبت من خلال نافدة الاوامر

وهي تعتبر ك جدول يحتوي على الرقم و على القيمة المرافقة له

متال


python script.py Hi World
sys.argv[0] = script.py
sys.argv[1] = HI
sys.argv[2] = World

ومهمتها هي ادخال البيانات من نافدة الاوامر عوض طلب اليوزر ادخالها

بالتوفيق

بارك الله فيك أخي

بتاريخ 7 ساعات قال مصطفى القباني:

بالنسبة لsys.argv هي الطريقة التي يتم الوصول إلى الarguments المعطاة للبايثون script.

على سبيل المثال إذا كان لديك script به الكود الآتي وقمت بحفظه في ملف script.py:


import sys

for arg in sys.argv:
  print(arg)

وقمت بإستدعاءه عن طريق الcommand line كالآتي:


python script.py arg1 arg2 arg3

سيكون المخرج هو:


script.py
arg1
arg2
arg3

وهو ما تم تمريره في الcommand line.

أما بالنسبة ل:


if __name__ == '__main__':

تستخدم في الملفات التي يراد إستخدامها بطريقتين، الأولى هي كبرنامج مستقل، والثانية إستدعائها في ملف آخر.

مثلاً إذا كان لديك الملف example.py وبه الآتي:


if __name__=='__main__':
  print('im running as the main program')

def helper(a):
  return 2*a

هذا الملف إذا تم تشغيله من خلال الcommand line سيقوم بطباعة 'im running as the main program'، أما إذا تم إستدعاءه داخل ملف آخر مثلا:


import example
print(example.helper(2))

فلن يتم طباعة الجملة، ولكن يمكن إستخدام الدوال والمتغيرات المعرفة بداخله، وبهذه الطريقة يمكن إستخدام الملف بطريقتين، بكونه البرنامج الرئيسي، أو إستخدامه كملف يتم إستدعاءه وإستخدام المتغيرات المعرفة بداخله. وهذه التفرقة تتم عن طريق الكشف على المتغير __name__ إذا كان مساوي ل'__main__' أم لا.

شرح جميل شكرا على وقت أخي في الرد على سؤالي 

  • 0
نشر

بكل بساطة اذا قمت بتشغيل ملف البايثون من خلال الـ Command Line

test.py my name is Ahmed

فبإمكانك قراءة الكلمات المرفقة داخل الكود هكذا:

import sys

for arg in sys.argv:
  print(arg)

يستفاد من هذه الميزة عندما يريد المستخدم تشغيل برنامج معين مع ادخال قيمة معينة. مثلا عندما تفتح ملف Word لديك على سطح المكتب فهو في الحقيقة يقوم بتشغيل برنامج Word بالإضافة الى مسار الملف الذي اختارته فيكون الامر مشابه لهذا

> word.exe my/paht/to/mydocument/myfile.docx

 

  • 0
نشر
بتاريخ On 8/14/2020 at 08:03 قال Sami Alfattani:

بكل بساطة اذا قمت بتشغيل ملف البايثون من خلال الـ Command Line


test.py my name is Ahmed

فبإمكانك قراءة الكلمات المرفقة داخل الكود هكذا:


import sys

for arg in sys.argv:
  print(arg)

يستفاد من هذه الميزة عندما يريد المستخدم تشغيل برنامج معين مع ادخال قيمة معينة. مثلا عندما تفتح ملف Word لديك على سطح المكتب فهو في الحقيقة يقوم بتشغيل برنامج Word بالإضافة الى مسار الملف الذي اختارته فيكون الامر مشابه لهذا


> word.exe my/paht/to/mydocument/myfile.docx

 

شكرا اخي بارك الله فيك

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...