از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
بیانیه ادعای پایتون
در این مقاله روش استفاده از آن را بررسی خواهیم کرد assert
بیانیه در پایتون
در پایتون، assert
از دستور برای تأیید صحت یا نبودن یک شرط با استفاده از نحو استفاده می شود:
assert <condition>
اگر شرایط به True
، برنامه طوری اجرا می شود که انگار هیچ اتفاق غیرعادی نیفتاده است. با این حال، اگر شرایط به ارزیابی می شود False
، برنامه با یک خاتمه می یابد AssertionError
.
>>> assert True
وقتی کد بالا اجرا می شود، هیچ اتفاقی نمی افتد، زیرا شرط به ارزیابی می شود True
. از طرف دیگر، شرط در مثال زیر به ارزیابی میشود False
:
>>> assert False
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
برای وضوح بیشتر، می توانیم یک پیغام خطای سفارشی را به صورت زیر به خروجی ادعا اضافه کنیم:
>>> assert False, "This is a custom assertion message!"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError: This is a custom assertion message!
دستور assert زمانی مفید است که میخواهیم بررسی کنیم که متغیری در کد ما مقدار صحیح را در نظر گرفته است و اگر این کار را نکرد برنامه را خاتمه دهیم. این به جلوگیری از حالتهای خرابی بیصدا کمک میکند، که ممکن است در صورت ادامه اجرای برنامه با مقادیر اشتباه رخ دهد و اشکالزدایی آن دشوار باشد.
در اینجا مثالی از یک عبارت ادعایی با شرط معنادارتر آورده شده است. بیایید فرض کنیم که میخواهیم اطمینان حاصل کنیم که ورودی متغیر پرچم توسط کاربر روی یکی از چندین مقدار صحیح تنظیم شده است. در غیر این صورت، اجرای برنامه را خاتمه می دهیم. ما می توانیم این کار را به صورت زیر انجام دهیم:
>>> flag = input("Enter a flag (y/n): ")
Enter a flag (y/n): y
>>> assert flag == "y" or flag == "n", "Invalid flag, must be 'y' or 'n'"
در مثال بالا، کاربر یک مقدار معتبر برای پرچم وارد کرده است، بنابراین هیچ خطایی ایجاد نمی شود. با این حال، در مثال زیر، یک ادعا به دلیل ورودی نامعتبر کاربر مطرح می شود:
>>> flag = input("Enter a flag (y/n): ")
Enter a flag (y/n): b
>>> assert flag == "y" or flag == "n", "Invalid flag, must be 'y' or 'n'"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError: Invalid flag, must be 'y' or 'n'
هنگامی که به این روش استفاده می شود، کد شما باید خطای پرتاب شده را بگیرد و پیام خطای سفارشی را به عنوان خروجی به کاربر نشان دهد تا بتواند پاسخ خود را تصحیح کند. این موارد کاربردهای زیادی در برنامههای پایتون دارد، خواه به عنوان ورودیهای یک مسیر API یا بررسی اینکه منبع دانلود شده حاوی اطلاعات مناسب است.
نکته مهم دیگری که باید به آن توجه کنید این است که وقتی مفسر پایتون یا اسکریپت پایتون را از خط فرمان اجرا می کنید، –O
از flag می توان برای اجرای برنامه استفاده کرد بدون اجرای هر گونه ادعا این امر با خاموش کردن حالت اشکال زدایی مفسر پایتون، عبارات ادعا را نادیده می گیرد. در استفاده از آن مراقب باشید زیرا می تواند منجر به پذیرش ورودی های نامعتبر یا خطرناک کد شما شود.
درباره نویسنده
این مقاله توسط Jacob Stopak، مشاور و توسعهدهنده نرمافزار با علاقه به کمک به دیگران برای بهبود زندگی خود از طریق کد نوشته شده است. یعقوب خالق است کارت کد – ابزاری مناسب برای توسعه دهندگان برای جستجو، کپی و چسباندن قطعه کدهای رایج.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-21 19:49:05