ویدیو آشنایی با assert در پایتون

امیرحسین بیگدلو July 2023

کلمه کلیدی assert برای تست کردن کد توسط برنامه نویس استفاده میشود. از assert به هیچ عنوان نباید برای اعتبارسنجی داده های کاربران یا نشان دادن یک پیغام به کاربر استفاده شود.

 

مثال زیر دقت کنید:

x = 4
assert x == 5
print(' x is equals to 5 ')

در کد بالا یک متغیر تعریف کردیم و مقدار ۴ رو ریختیم داخلش. در خط دوم با استفاده از assert چک میکنیم که آیا مقدار  x برابر با 5 هست یا نه. اگه اون شرطی که assert داره باهاش کد رو چک میکنه درست باشه ادامه برنامه اجرا میشه در غیر این صورت ارور میده و برنامه از کار میفته.

 

همونطور که گفتم نباید داده های کاربر رو با استفاده از assert اعتبارسنجی کرد چون امکان غیر فعال کردن assert در پایتون وجود داره.

کد بالا رو با استفاده از دستور زیر اجرا کنید. خواهید دید که assert از کار میفته:

python -O filename.py

 

اگر ویدیو بالا را دوست داشتید پیشنهاد میکنیم به مطالب زیر هم سر بزنید:

دوره آموزش پایتون

دوره اول آموزش پروژه محور پایتون

دوره آموزش تست نویسی در پایتون

دوره آموزش GraphQL در پایتون

دوره سوم آموزش پروژه محور پایتون

ویدیوهای مشابه



آموزش ماژول inspect پایتون
امیرحسین بیگدلو

ارسال نظر


باب

9 ماه قبل پاسخ به نظر

درود
امیرجان وقتت بخیر

یه مثال کاربردی و واقعی میشه بگی برای کاربرد assert

ارسال نظر



امیرحسین بیگدلو

9 ماه قبل

سلام
در تست نویسی کاربرد زیادی داره

الهام

2 سال قبل پاسخ به نظر

خیلی عالی توضیح میدید، بسیار ممنونم

ارسال نظر



عاطفه

2 سال قبل پاسخ به نظر

خیلی ممنون استاد
یه سوالی که پیش اومد برای من فرق و یا تفاوت کاربرد assert با raise چی هست؟مورد استفاده raise در مقابل assert که برای برنامه نویس و باگ یابی استفاده میشه چیه؟

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
از raise برای نمایش یک exception استفاده میشه اما از assert برای بررسی یک شرط

ehsan

2 سال قبل پاسخ به نظر

با سلام
ممنون از توضیح شما.

ارسال نظر



میلاد

3 سال قبل پاسخ به نظر

بیان بسیار عالی
مثال ها خوب

ارسال نظر



مهراد

3 سال قبل پاسخ به نظر

خیلی خوب بود

ارسال نظر



باب

3 سال قبل پاسخ به نظر

درود ، عالی
در واقع موقع publish نهایی برنامه روی سرور ، کدهای ما باید فاقد assert باشن ، درسته ؟
فقط برای زمان توسعه و تست هست ؟

ارسال نظر



امیرحسین بیگدلو

3 سال قبل

سلام
خیر. میتونید در زمان production هم از assert استفاده کنید.
همینطور که گفتم برای چک کردن اطلاعات حساس ازش استفاده نکنید. برای بقیه کارها میتونید بدون مشکل ازش استفاده کنید.


باب

3 سال قبل

ممنون از پاسخ ،

خب اگه تو حالت production استفاده کنیم ، به کاربر assertError در صفحه وب نمایش داده میشه ؟ یا فقط توی ترمینال هست ؟
به عنوان مثال توی جنگو استفاده میشه ؟


امیرحسین بیگدلو

3 سال قبل

اگر assert ارور بده از نوع assertionError خواهد بود که شما باید اینو هندل کنید و یک پاسخ مناسب به کاربر نشون بدید نه اینکه ول کنید که assertionError خودش هر جایی دلش خواست نمایان بشه

amir

4 سال قبل پاسخ به نظر

بسیار مفید

ارسال نظر



امیرحسین بیگدلو

4 سال قبل

خیلی ممنون

مونگارد