پرسش

چه کاربردی دارد assert در پایتون؟

What is the use of assert in Python?

توی پایتون یک کلمه کلیدی به اسم assert داریم. این کلمه دقیقاً چه کاری انجام می‌ده و چه زمانی باید ازش استفاده کنیم؟

1403/06/03
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

کلیدواژه‌ی assert در پایتون برای انجام تست‌های درونی (internal tests) در کد استفاده می‌شه. وقتی می‌خواهی مطمئن شی که یک شرط (condition) خاص در حین اجرای برنامه حتماً برقراره، می‌تونی از assert استفاده کنی.

مثلاً فرض کن داری برنامه‌ای می‌نویسی که باید حتماً ورودی کاربر عدد مثبت باشه. می‌تونی با assert این موضوع رو چک کنی:

def process_input(number):
    assert number > 0, "The number must be positive!"
    # Continue processing the number
    print(f"Processing number: {number}")
process_input(-5)

اینجا اگر ورودی عدد منفی باشه، assert یک AssertionError می‌اندازه و پیام خطا رو نمایش می‌ده. این کار باعث می‌شه تا وقتی شرط برقرار نیست، کد دیگه ادامه پیدا نکنه.

از assert بیشتر برای چک کردن پیش‌شرط‌ها و پس‌شرط‌ها (preconditions و postconditions) در حین توسعه و تست کد استفاده می‌شه. مثلاً وقتی مطمئنی که تابعت باید حتماً یک ورودی خاص بگیره یا نتیجه‌ی خاصی برگردونه، از assert استفاده می‌کنی تا این موضوع رو بررسی کنی.

نکته‌ای که باید بدونی اینه که assert رو نباید توی کدی که توی محیط production اجرا می‌شه استفاده کنی، چون در این حالت، پایتون می‌تونه کل assertها رو از کد حذف کنه (اگه برنامه رو در حالت optimized اجرا کنی). پس بیشتر برای تست‌های توسعه‌ای مناسبه.

در کل، assert وقتی به کار میاد که می‌خواهی مطمئن شی شرطی که تو ذهنت هست همیشه برقراره وگرنه برنامه باید متوقف بشه تا باگ‌ها راحت‌تر پیدا بشن.

پاسخ: 1403/06/03
آخرین آپدیت: 1403/07/29