منابع ترجمه · 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) نمایش میدهد.