0
Can any body expalin raise to me?? but please use a simple english words because I cannot speak english well....and thank you
29 ответов
+ 12
In Python the 'raise' statement causes an exception and can display an error message. So here 'raise' means 'cause', as in 'make happen'. Lots of info on the subject here. https://www.tutorialspoint.com/python/python_exceptions.htm
+ 3
As David said, raise is used to make exceptions, either standard exceptions or user made. Here's a simple example:
https://code.sololearn.com/czdEVR5oXJGM/?ref=app
---------
+ 2
صممت لك الان كود فيه كل اللي كلمتك عليه_انسخه او اكتبه في كمبيوترك وشغله وشوف كيف يعمل
*ما يشتغل هنا لانه ال IDE تبعهم مو إنتراكتف
لو في عندك اي سؤال ولا إي شي مو فاهمه في بايثون_انا تحت امرك
Run this code on your computer and see how raise, try, except works and learn how to make your own exceptions.
https://code.sololearn.com/cwDcWgvutA9w/?ref=app
+ 1
اخي اسامه
اذا انت عربي اتمني تشرحلي بالعربي
لأني اعاني صراحه عندما ادرس بالانجليزيه
Osamah Mohammed Al-Haddad
+ 1
يا اخي العزيز عمر، نستخدم ريز عشان نخلي البرنامج يطلع إنذار خطاء
بايثون عندها مكتبة أخطاء كأخطاء السينتاكس او اخطاء إملائية
وعندما نستخدم ريز_نحن نجعل الخطاء يظهر حتى وإن لم يكن هناك داع له او عندما نكون خطاء بانفسنا ونجعله يظهر
إنظر إلى المثال الذي ادرجته في تعليقي الاول_فقد كان كل شي صحيح. لكن عندما ادرجت الكلمة ريز مع إسم الخطأ الذي اردت إظهاره فإنه يظهر
+ 1
في بايثون عندما يكون هناك خطأ برمجي او خطأ قيمة، خطأ إستدعاء، خطاء قيمة، فإن بايثون يظهره في وقت تشغيل البرنامج
لكن عند إستخدام "try" فإن الاخطاء لا تظهر، لكن مع raise فإن الاخطاء تظهر رغم ذلك
+ 1
تمام
لكن ماذا سأستفيد عندما اقوم بجعل البرنامج يقوم بعمل error بدون سبب؟!
+ 1
لانه في بعض البرامج_البرامج الاحترافية_ندخل جزء منه تحت try عشان نتلافى إيقاف البرنامج بسبب الاخطاء_لكن في حالة إننا نريد ان نظهر خطاء وإمساكه بواسطة except فإننا نستخدم raise لاظهار خطأ محدد.
في البرامج الاحترافية_نقوم بصناعة خطاء غير مدرج في بايثون عشان نحدد مثلا إدخال من المستخدم بحالة خاصة
فعلى سبيل المثال، نريد المستخدم ان يدخل حروف فقط وبدون اي رموز_فنقوم بصناعة class ونحدد فيها هذا الخطاء ونقوم بإظهاره بإستخدام raise
+ 1
حسنا اخي شكرا لك😀
+ 1
تمام اخي شكرا لك
لكن استئذنك هل ممكن اسئلك عن موضوع اخر؟؟
+ 1
ابشر اخي عمر_باي وقت
+ 1
تسلم اخي
بالنسبه لsuper الخاصه بالميثودز
انا لا افهم ما فائدتها؟
+ 1
السوبر تستعمل عشان تستدعي ميثود من الكلاس الام او السوبر كلاس
في برمجة ال oop في حاجة إسمها الوراثة inheritance_يعني تورث ميثود لكلاس من كلاس اخر
في الوراثة معانا ال سوبر كلاس superclass وال سب كلاس subclass_المورث والوارث
فنستعمل سوبر في داخل السب كلاس عشان نستدعي ميثود(فنكشن) من داخل السوبر كلاس
+ 1
شوف كيف ال super استدعى وعدل على الميثود حق الكلاس الام في هذا الكود اللي سويته لك الان
https://code.sololearn.com/ctjL42Lp3h7D/?ref=app
+ 1
انا كده ولا كده لما اكون عامل وراثه للكلاس الاب فالكلاس الابن بياخذ كل الميثودز اللي في الكلاس الاب
لكن لو انا عاوز اضيف شئ معين لميثود معينه بكتب اسمها في الكلاس الابن واروح كاتب بداخل الميثود
super().method_name()
#هذا الطريقه في بايثون 3 لكنك استخدمت طريقه البايثون2
بكده اكون جعلت الميثود في وضع تهيئه ....يعني اقدر اضيف الاكواد اللي انا اريدها علي الميثود الرئيسيه اللي كانت موجوده في الكلاس الاب وعملتلها وراثه
(لكن بالطبع ستظل الميثوظ الرئيسيه بدون تغيير)
كلامي صحيح ؟؟
+ 1
صحيح! في البايثن 3 تسوي سوبر وإسم المثد بس
وبيني وبينك الوراثة مسألة شائكة واحسن تتجنبها
+ 1
اتجنبها كيف؟
+ 1
هناك طريقة اخرى غير الوراثة وهي التركيب او composition
طريقة سهلة وواضحة وليس فيها اي تعقيد
+ 1
طبب لكن الاستاذ شرح لي السوبر ولم يشرح لي الcomposition فهل ابحث عنها ام اتركها الان ؟
+ 1
في برمجة ال oop مثل ما هناك الوراثة هناك القسم الثاني اللي هو التكوين
التكوين هو بديل او بشكل اصح الوجه الآخر والاسهل للوراثة
يستحسن لو تقرأ عليها بشكل موسع