منابع ترجمه · Python Built-ins · فصل ۲

ثابت‌های درون‌ساخت (مرجع درون‌ساخت‌های پایتون)

۳ دقیقه مطالعه · به‌روزرسانی ۳ آبان ۱۴۰۵

منبع اصلی: Python Built-ins, Chapter 2: Built-in Constants — Python Software Foundation

💡 این صفحه مثل یک نوت‌بوک Jupyter است: متغیر و تابعی که در یک سلول تعریف شود، در سلول‌های بعدی همین صفحه در دسترس است. سلول‌ها را به ترتیب اجرا کنید، یا با «⏮ تا اینجا» همهٔ سلول‌های قبلیِ اجرانشده را یک‌جا اجرا کنید.

تعداد کمی ثابت در فضای نام درون‌ساخت قرار دارند. این‌ها عبارت‌اند از:

False : مقدار نادرست نوع bool. انتساب به False غیرمجاز است و SyntaxError پرتاب می‌کند.

True : مقدار درست نوع bool. انتساب به True غیرمجاز است و SyntaxError پرتاب می‌کند.

None : شیئی که اغلب برای نشان دادن نبود مقدار به کار می‌رود، مثلاً وقتی آرگومان‌های پیش‌فرض به تابع داده نمی‌شوند. انتساب به None غیرمجاز است و SyntaxError پرتاب می‌کند. None تنها نمونهٔ نوع types.NoneType است.

NotImplemented : مقدار ویژه‌ای که متدهای ویژهٔ دودویی (مثل __eq__()، __lt__()، __add__()، __rsub__() و غیره) باید برگردانند تا نشان دهند عملیات نسبت به نوع دیگر پیاده‌سازی نشده است؛ متدهای ویژهٔ دودویی درجا (in-place) (مثل __imul__()، __iand__() و غیره) نیز برای همین منظور ممکن است آن را برگردانند. نباید آن را در بافت بولی ارزیابی کرد. NotImplemented تنها نمونهٔ نوع types.NotImplementedType است.

یادداشت: وقتی یک متد دودویی (یا درجا) NotImplemented برمی‌گرداند، مفسر عملیات بازتابی (reflected) را روی نوع دیگر امتحان می‌کند (یا بسته به عملگر، جایگزین دیگری). اگر همهٔ تلاش‌ها NotImplemented برگردانند، مفسر یک استثنای مناسب پرتاب می‌کند. برگرداندن نادرست NotImplemented به یک پیام خطای گمراه‌کننده یا بازگشت مقدار NotImplemented به کد پایتون می‌انجامد.

برای مثال‌ها پیاده‌سازی عملیات حسابی را ببینید.

احتیاط: NotImplemented و NotImplementedError قابل‌تعویض نیستند. این ثابت فقط باید همان‌طور که در بالا توصیف شد به کار رود؛ برای استفادهٔ صحیح از استثنا به NotImplementedError مراجعه کنید.

تغییر در نسخهٔ ۳٫۹: ارزیابی NotImplemented در بافت بولی منسوخ (deprecated) شد.

تغییر در نسخهٔ ۳٫۱۴: ارزیابی NotImplemented در بافت بولی اکنون TypeError پرتاب می‌کند. پیش‌تر از پایتون ۳٫۹ به True ارزیابی می‌شد و DeprecationWarning صادر می‌کرد.

Ellipsis : معادل literal سه‌نقطه «...»، شیئی که اغلب برای نشان دادن حذف‌شدن چیزی به کار می‌رود. انتساب به Ellipsis ممکن است، اما انتساب به ... SyntaxError پرتاب می‌کند. Ellipsis تنها نمونهٔ نوع types.EllipsisType است.

__debug__ : این ثابت درست است اگر پایتون بدون گزینهٔ -O راه‌اندازی شده باشد. دستور assert را هم ببینید.

یادداشت: نام‌های None، False، True و __debug__ را نمی‌توان دوباره انتساب داد (انتساب به آن‌ها، حتی به‌عنوان نام ویژگی، SyntaxError پرتاب می‌کند)، بنابراین می‌توان آن‌ها را ثابت‌های «واقعی» دانست.

ثابت‌های افزوده‌شده توسط ماژول site

ماژول site (که هنگام راه‌اندازی خودکار import می‌شود، مگر اینکه گزینهٔ خط فرمان -S داده شده باشد) چند ثابت به فضای نام درون‌ساخت اضافه می‌کند. این‌ها برای پوستهٔ مفسر تعاملی مفیدند و نباید در برنامه‌ها به کار روند.

quit(code=None) و exit(code=None) : اشیایی که وقتی چاپ شوند پیامی مانند «Use quit() or Ctrl-D (i.e. EOF) to exit» چاپ می‌کنند، و وقتی مستقیماً در مفسر تعاملی دسترسی شوند یا به‌صورت تابع فراخوانی شوند، SystemExit را با کد خروج مشخص‌شده پرتاب می‌کنند.

help : شیئی که وقتی چاپ شود پیام «Type help() for interactive help, or help(object) for help about object.» را چاپ می‌کند، و وقتی مستقیماً در مفسر تعاملی دسترسی شود، سامانهٔ راهنمای درون‌ساخت را فراخوانی می‌کند (help() را ببینید).

copyright و credits : اشیایی که وقتی چاپ یا فراخوانی شوند، به ترتیب متن حق نشر (copyright) یا اعتبارات (credits) را چاپ می‌کنند.

license : شیئی که وقتی چاپ شود پیام «Type license() to see the full license text» را چاپ می‌کند، و وقتی فراخوانی شود متن کامل مجوز را به‌صورت صفحه‌به‌صفحه (مثل pager) نمایش می‌دهد.