Sami Remili نشر 12 أغسطس 2020 أرسل تقرير نشر 12 أغسطس 2020 سلام عليكم هل اجد شرح وافي بخصوص : و ماهي مهمتها عند عمل Script في بايثون sys.argv[1] //////////// ggg و كذلك : if __name__ == '__main__': main() اقتباس
0 مصطفى القباني نشر 12 أغسطس 2020 أرسل تقرير نشر 12 أغسطس 2020 بالنسبة ل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__' أم لا. 1 اقتباس
0 عبد العزيز الوهاب نشر 12 أغسطس 2020 أرسل تقرير نشر 12 أغسطس 2020 (معدل) وعليكم السلام ورحمة الله sys argv هي القيم التي نقوم بتمريرها للسكريبت من خلال نافدة الاوامر وهي تعتبر ك جدول يحتوي على الرقم و على القيمة المرافقة له متال python script.py Hi World sys.argv[0] = script.py sys.argv[1] = HI sys.argv[2] = World ومهمتها هي ادخال البيانات من نافدة الاوامر عوض طلب اليوزر ادخالها بالتوفيق تم التعديل في 12 أغسطس 2020 بواسطة عبد العزيز الوهاب 1 اقتباس
0 Sami Remili نشر 13 أغسطس 2020 الكاتب أرسل تقرير نشر 13 أغسطس 2020 بتاريخ 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 سامي الفتني نشر 14 أغسطس 2020 أرسل تقرير نشر 14 أغسطس 2020 بكل بساطة اذا قمت بتشغيل ملف البايثون من خلال الـ 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 1 اقتباس
0 Sami Remili نشر 16 أغسطس 2020 الكاتب أرسل تقرير نشر 16 أغسطس 2020 بتاريخ 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 شكرا اخي بارك الله فيك اقتباس
السؤال
Sami Remili
سلام عليكم
هل اجد شرح وافي بخصوص :
و ماهي مهمتها عند عمل Script في بايثون
sys.argv[1] //////////// ggg
و كذلك :
if __name__ == '__main__': main()
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.