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

August 2019

کلمه کلیدی 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 در پایتون

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

ارسال نظر

تلاش میکنم سوالات شما را در کمتر از یک روز پاسخ بدم

ehsan

October 2021

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

پاسخ به نظر


میلاد

September 2021

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

پاسخ به نظر


مهراد

September 2021

خیلی خوب بود

پاسخ به نظر


باب

June 2021

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

پاسخ به نظر


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

June 2021

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


باب

June 2021

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

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


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

September 2021

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

amir

October 2020

بسیار مفید

پاسخ به نظر


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

October 2020

خیلی ممنون