GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing python.github.io — __future__ --- تعاریف دستورات آینده
|
ویژگی |
اختیاری در |
اجباری در |
تأثیر |
|---|---|---|---|
|
2.1.0b1 |
2.2 |
PEP 227: محدودههای تو در تو ایستا |
|
2.2.0a1 |
2.3 |
PEP 255: تولیدگرهای ساده |
|
2.2.0a2 |
3.0 |
PEP 238: تغییر عملگر تقسیم |
|
2.5.0a1 |
3.0 |
PEP 328: ایمپورتها: چندخطی و مطلق/نسبی |
|
2.5.0a1 |
2.6 |
PEP 343: دستور “with” |
|
2.6.0a2 |
3.0 |
PEP 3105: تبدیل print به یک تابع |
|
2.6.0a2 |
3.0 |
PEP 3112: مقادیر لفظی بایت در پایتون ۳۰۰۰ |
|
3.5.0b1 |
3.7 |
PEP 479: مدیریت StopIteration درون تولیدگرها |
|
3.7.0b1 |
هرگز [1] |
PEP 563: ارزیابی بهتعویقافتادهی annotationها، PEP 649: ارزیابی بهتعویقافتادهی annotationها با استفاده از توصیفگرها |
هر دستور در __future__.py به شکل زیر است:
FeatureName = _Feature(OptionalRelease, MandatoryRelease, CompilerFlag)
که در آن، بهطور معمول، OptionalRelease کوچکتر از MandatoryRelease است، و هر دو تاپلهای ۵ عضوی به همان شکل sys.version_info هستند:
(PY_MAJOR_VERSION, # the 2 in 2.1.0a3; an int PY_MINOR_VERSION, # the 1; an int PY_MICRO_VERSION, # the 0; an int PY_RELEASE_LEVEL, # "alpha", "beta", "candidate" or "final"; string PY_RELEASE_SERIAL # the 3; an int )
OptionalRelease اولین نسخهای را ثبت میکند که ویژگی در آن پذیرفته شده است.
در مورد MandatoryRelease که هنوز رخ نداده است، MandatoryRelease نسخهای را پیشبینی میکند که ویژگی در آن بخشی از زبان خواهد شد.
در غیر این صورت، MandatoryRelease زمانی را ثبت میکند که ویژگی به بخشی از زبان تبدیل شد؛ در نسخههای همان یا بعد از آن، ماژولها دیگر برای استفاده از آن ویژگی نیازی به دستور future ندارند، اما میتوانند به استفاده از چنین ایمپورتهایی ادامه دهند.
MandatoryRelease همچنین میتواند None باشد، به این معنی که یک ویژگی برنامهریزیشده حذف شده است یا اینکه هنوز تصمیمی دربارهی آن گرفته نشده است.
CompilerFlag پرچم (فیلد بیتی) است که باید در آرگومان چهارم تابع توکار compile() ارسال شود تا این ویژگی در کدهای کامپایلشدهی پویا فعال شود. این پرچم در ویژگی _Feature.compiler_flag روی نمونههای _Feature ذخیره میشود.
همچنین ببینید
نحوهی برخورد کامپایلر با ایمپورتهای future.
پیشنهاد اولیه برای مکانیزم __future__.