பைதான் 3.9 நிரலாக்க மொழியின் வெளியீடு

ஒரு வருட வளர்ச்சிக்குப் பிறகு வழங்கப்பட்டது குறிப்பிடத்தக்க நிரலாக்க மொழி வெளியீடு பைதான் 3.9. பைதான் 3.9 அதன் பிறகு முதல் வெளியீடு மாற்றம் திட்டம் புதிய சுழற்சி வெளியீடுகளின் தயாரிப்பு மற்றும் ஆதரவு. புதிய பெரிய வெளியீடுகள் இப்போது வருடத்திற்கு ஒருமுறை உருவாக்கப்படும், மேலும் இரண்டு மாதங்களுக்கு ஒருமுறை திருத்தமான புதுப்பிப்புகள் வெளியிடப்படும். ஒவ்வொரு குறிப்பிடத்தக்க கிளையும் ஒன்றரை ஆண்டுகளுக்கு ஆதரிக்கப்படும், அதன் பிறகு இன்னும் மூன்றரை ஆண்டுகள் பாதிப்புகளைச் சரிசெய்வதற்காக உருவாக்கப்படும்.

ஒரு புதிய கிளைக்கான வேலை இப்போது அடுத்த கிளை வெளியிடப்படுவதற்கு ஐந்து மாதங்களுக்கு முன்பு தொடங்குகிறது, அதாவது. பைதான் 3.9 வெளியீட்டுடன் ஒத்துப்போகிறது தொடங்கியது பைதான் 3.10 கிளையின் ஆல்பா சோதனை. பைதான் 3.10 கிளை ஏழு மாதங்களுக்கு ஆல்பா வெளியீட்டில் இருக்கும், இதன் போது புதிய அம்சங்கள் சேர்க்கப்பட்டு பிழைகள் சரி செய்யப்படும். இதற்குப் பிறகு, பீட்டா பதிப்புகள் மூன்று மாதங்களுக்கு சோதிக்கப்படும், இதன் போது புதிய அம்சங்களைச் சேர்ப்பது தடைசெய்யப்படும் மற்றும் பிழைகளை சரிசெய்வதில் அனைத்து கவனமும் செலுத்தப்படும். வெளியீட்டிற்கு கடந்த இரண்டு மாதங்களுக்கு முன்பு, கிளை வெளியீட்டு வேட்பாளர் கட்டத்தில் இருக்கும், அதில் இறுதி நிலைப்படுத்தல் செய்யப்படும்.

மத்தியில் சேர்க்கப்பட்டது புதுமைகள் பைதான் 3.9 இல்:

  • உள்ளமைக்கப்பட்ட டிக்ட் வகுப்பைப் பயன்படுத்தி வரையறுக்கப்பட்ட அகராதிகளில், தோன்றினார் இணைப்பு ஆபரேட்டர்களுக்கான ஆதரவு "|" மற்றும் "|=" மேம்படுத்தல்கள், இது அகராதிகளை இணைப்பதற்கு முன்பு முன்மொழியப்பட்ட {**d1, **d2} மற்றும் dict.update முறைகளை நிறைவு செய்கிறது.

    >>> x = {"key1": "value1 from x", "key2": "value2 from x"}
    >>> y = {"key2": "value2 from y", "key3": "value3 from y"}

    >>> x | ஒய்
    {'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'}

    >>> ஒய் | எக்ஸ்
    {'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}

  • வகைகளின் உள்ளமைக்கப்பட்ட சேகரிப்பில் பட்டியல், டிக்ட் மற்றும் டூப்பிள் ஆகியவை அடங்கும், அவை தட்டச்சு தொகுதியிலிருந்து இறக்குமதி செய்யாமல் அடிப்படை வகைகளாகப் பயன்படுத்தப்படலாம். அந்த. தட்டச்சு செய்வதற்குப் பதிலாக.பட்டியல், தட்டச்சு.டிக்ட் மற்றும் தட்டச்சு.Tuple ஐ நீங்கள் இப்போது குறிப்பிடலாம்
    பட்டியல், கட்டளை மற்றும் டூப்பிள்:

    def greet_all(பெயர்கள்: பட்டியல்[str]) -> எதுவுமில்லை:
    பெயர்களில் பெயருக்கு:
    அச்சு ("வணக்கம்", பெயர்)

  • வழங்கப்படுகின்றன செயல்பாடுகள் மற்றும் மாறிகளை குறிப்பதற்காக நெகிழ்வான கருவிகள். சிறுகுறிப்புகளை இணைக்க, தட்டச்சு தொகுதியில் ஒரு புதிய சிறுகுறிப்பு வகை சேர்க்கப்பட்டுள்ளது, நிலையான பகுப்பாய்வு அல்லது ரன்-டைம் மேம்படுத்தல்களுக்குப் பயன்படுத்தக்கூடிய கூடுதல் மெட்டாடேட்டாவுடன் இருக்கும் வகைகளை விரிவுபடுத்துகிறது. குறியீட்டிலிருந்து மெட்டாடேட்டாவை அணுகுவதற்கு, include_extras அளவுரு typing.get_type_hints() முறையில் சேர்க்கப்பட்டுள்ளது.

    charType = Annotated[int, ctype("char")] UnsignedShort = Annotated[int, struct2.ctype('H')]

  • டோன் டவுன் அலங்கரிப்பாளர்களுக்கான இலக்கணத் தேவைகள் - தொகுதிகள் மற்றும் போது பயன்படுத்துவதற்கு ஏற்ற எந்த வெளிப்பாடும் இப்போது அலங்காரமாகப் பயன்படுத்தப்படலாம். இந்த மாற்றம் PyQt5 குறியீட்டின் வாசிப்புத்திறனை கணிசமாக மேம்படுத்தியது மற்றும் இந்த தொகுதியின் பராமரிப்பை எளிதாக்கியது:

    இருந்தது:
    button_0 = பொத்தான்கள்[0] @button_0.clicked.connect

    இப்போது நீங்கள் எழுதலாம்:
    @buttons[0].clicked.connect

  • நிலையான நூலகத்திற்கு சேர்க்கப்பட்டது தொகுதி மண்டல தகவல், IANA நேர மண்டல தரவுத்தளத்தில் இருந்து தகவல் அடங்கும்.

    >>> Zoneinfo இறக்குமதி ZoneInfo இலிருந்து
    >>> தேதிநேர இறக்குமதி தேதிநேரத்திலிருந்து, டைம்டெல்டா
    >>> # கோடை காலம்
    >>> dt = தேதிநேரம்(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
    >>> அச்சு(dt)
    2020-10-31 12:00:00-07:00

    >>> dt.tzname()
    'பிடிடி'

    >>> # நிலையான நேரம்
    >>> dt += timedelta(நாட்கள்=7)
    >>> அச்சு(dt)
    2020-11-07 12:00:00-08:00

    >>> அச்சு(dt.tzname())
    வீரத்தை

  • இதில் graphlib தொகுதி சேர்க்கப்பட்டது செயல்படுத்தப்பட்டது வரைபடங்களின் இடவியல் வகைப்பாட்டிற்கான ஆதரவு.
  • முன்மொழியப்பட்டது முன்னொட்டுகள் மற்றும் வரி முடிவுகளை அகற்றுவதற்கான புதிய முறைகள் - str.removprefix(முன்னொட்டு) மற்றும் str.removesuffix(பின்னொட்டு). str, bytes, bytearray மற்றும் collections.UserString objects ஆகியவற்றில் முறைகள் சேர்க்கப்பட்டுள்ளன.

    >>> s = "FooBar"
    >>> s.removprefix("Foo")
    'மதுக்கூடம்'

  • ஈடுபட்டுள்ளது புதிய பாகுபடுத்தி PEG (பாகுபடுத்தும் வெளிப்பாடு இலக்கணம்), இது பாகுபடுத்தியை மாற்றியது LL(1). புதிய பாகுபடுத்தியின் பயன்பாடு, எல்எல்(1) இல் உள்ள கட்டுப்பாடுகளைத் தவிர்ப்பதற்குப் பயன்படுத்தப்படும் சில "ஹேக்குகளை" அகற்றுவதை சாத்தியமாக்கியது, மேலும் பாகுபடுத்திப் பராமரிப்பதற்கான உழைப்புச் செலவைக் கணிசமாகக் குறைத்தது. செயல்திறனைப் பொறுத்தவரை, புதிய பாகுபடுத்தி முந்தையதைப் போலவே தோராயமாக அதே மட்டத்தில் உள்ளது, ஆனால் நெகிழ்வுத்தன்மையின் அடிப்படையில் அதை விட கணிசமாக முன்னால் உள்ளது, இது புதிய மொழி அம்சங்களை வடிவமைக்கும்போது மிகவும் சுதந்திரமாக உணர அனுமதிக்கிறது. பழைய பாகுபடுத்தும் குறியீடு தற்போது தக்கவைக்கப்பட்டுள்ளது மற்றும் "-X oldparser" கொடி அல்லது "PYTHONOLDPARSER=1" சூழல் மாறியைப் பயன்படுத்தி திரும்பப் பெறலாம், ஆனால் வெளியீடு 3.10 இல் அகற்றப்படும்.
  • வழங்கப்பட்டது PyState_FindModule செயல்பாட்டைப் பயன்படுத்தி தொகுதி நிலையைத் தேடுவதற்குப் பதிலாக, நேரடி சுட்டிக்காட்டி dereference ஐப் பயன்படுத்தி வரையறுக்கப்பட்ட தொகுதிகளின் நிலையை அணுகுவதற்கு C நீட்டிப்பு முறைகளுக்கான திறன். தொகுதி நிலையைச் சரிபார்ப்பதன் மேல்நிலையைக் குறைப்பதன் மூலம் அல்லது முழுமையாக நீக்குவதன் மூலம் சி தொகுதிகளின் செயல்திறனை அதிகரிக்க மாற்றம் உங்களை அனுமதிக்கிறது. ஒரு தொகுதியுடன் ஒரு தொகுதியை இணைக்க, C-function PyType_FromModuleAndSpec() முன்மொழியப்பட்டது, தொகுதி மற்றும் அதன் நிலையைப் பெற, C-செயல்பாடுகளான PyType_GetModule() மற்றும் PyType_GetModuleState() ஆகியவை முன்மொழியப்படுகின்றன, மேலும் வகுப்பிற்கான அணுகலுடன் ஒரு முறையை வழங்கவும். இதில் இது வரையறுக்கப்பட்டுள்ளது, C-செயல்பாடு PyCMethod மற்றும் METH_METHOD கொடி முன்மொழியப்பட்டது.
  • குப்பை சேகரிப்பான் வழங்கப்பட்டது ஃபைனலைசர் இயங்கிய பிறகும் வெளிப்புறமாக அணுகக்கூடிய மறுஉருவாக்கம் செய்யப்பட்ட பொருட்களைக் கொண்ட தொகுப்புகளைப் பூட்டுவதில் இருந்து.
  • சேர்க்கப்பட்ட முறை os.pidfd_open, இது லினக்ஸ் கர்னல் துணை அமைப்பு "pidfd" ஐ PID மறுபயன்பாட்டு சூழ்நிலையை கையாள அனுமதிக்கிறது (pidfd ஒரு குறிப்பிட்ட செயல்முறையுடன் தொடர்புடையது மற்றும் மாறாது, அதே நேரத்தில் PID உடன் தொடர்புடைய தற்போதைய செயல்முறை முடிவடைந்த பிறகு PID மற்றொரு செயல்முறையுடன் தொடர்புபடுத்தப்படலாம். )
  • யூனிகோட் விவரக்குறிப்புக்கான ஆதரவு பதிப்பு 13.0.0 க்கு புதுப்பிக்கப்பட்டது.
  • நீக்கப்பட்டது நினைவக கசிவு அதே செயல்பாட்டில் பைதான் மொழிபெயர்ப்பாளரை மீண்டும் தொடங்கும் போது.
  • உள்ளமைக்கப்பட்ட வகைகளின் வரம்பு, டூப்பிள், செட், ஃப்ரோசன்செட், பட்டியல் மற்றும் டிக்ட் ஆகியவற்றின் செயல்திறன் மேம்படுத்தப்பட்டுள்ளது. செயல்படுத்தப்பட்டது Vectorcall குறுக்குவழி நெறிமுறையைப் பயன்படுத்துவதன் மூலம் C மொழியில் எழுதப்பட்ட பொருட்களை விரைவாக அணுகலாம்.
  • தொகுதிகள் _abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time and _weakref இலிருந்து ஏற்றப்பட்டது பல கட்டங்களில் துவக்கம்.
  • ஆடியோப், ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios மற்றும் zlib ஆகிய நிலையான நூலக தொகுதிகள் கட்டுப்படுத்தப்பட்டவையாக மாற்றப்பட்டுள்ளன. நிலையான ஏபிஐ, இது பைத்தானின் வெவ்வேறு பதிப்புகளுக்கான நீட்டிப்பு தொகுதிகளின் செயல்பாட்டின் சிக்கலைத் தீர்க்கிறது (பதிப்பைப் புதுப்பிக்கும்போது, ​​நீட்டிப்பு தொகுதிகளை மீண்டும் உருவாக்க வேண்டிய அவசியமில்லை, மேலும் 3.9 க்கு தொகுக்கப்பட்ட தொகுதிகள் 3.10 கிளையில் வேலை செய்ய முடியும்).
  • asyncio தொகுதி சாத்தியமான பாதுகாப்பு சிக்கல்கள் காரணமாக reuse_address அளவுருவுக்கான ஆதரவை நிராகரித்துள்ளது (லினக்ஸில் UDP க்காக SO_REUSEADDR ஐப் பயன்படுத்துவது UDP போர்ட்டில் கேட்கும் சாக்கெட்டுகளை இணைக்க பல்வேறு செயல்முறைகளை அனுமதிக்கிறது).
  • புதிய மேம்படுத்தல்கள் சேர்க்கப்பட்டுள்ளன, எடுத்துக்காட்டாக, பல-திரிக்கப்பட்ட பயன்பாடுகளில் சிக்னல் ஹேண்ட்லர்களின் மேம்பட்ட செயல்திறன், FreeBSD சூழலில் துணை செயல்முறை தொகுதியின் வேகம் மற்றும் தற்காலிக மாறிகளின் வேகமான ஒதுக்கீடு (" for y in [expr" என்ற வெளிப்பாட்டில் ஒரு மாறியை ஒதுக்குதல். ]” இப்போது “y = expr” போல செயல்திறன் கொண்டது). பொதுவாக, பெரும்பாலான சோதனைகள் நிகழ்ச்சி கிளை 3.8 உடன் ஒப்பிடும்போது செயல்திறன் குறைவு (எழுத்து_உள்ளூர் மற்றும் எழுதும்_தேவை சோதனைகளில் மட்டுமே வேகம் காணப்படுகிறது):

    பைதான் பதிப்பு 3.4 3.5 3.6 3.7 3.8 3.9
    ———————————

    மாறி மற்றும் பண்புக்கூறு வாசிப்பு அணுகல்:
    read_local 7.1 7.1 5.4 5.1 3.9 4.0
    read_nonlocal 7.1 8.1 5.8 5.4 4.4 4.8
    read_global 15.5 19.0 14.3 13.6 7.6 7.7
    read_builtin 21.1 21.6 18.5 19.0 7.5 7.7
    25.6 26.5 20.7 19.5 18.4 18.6
    read_classvar_from_instance 22.8 23.5 18.8 17.1 16.4 20.1
    read_instancevar 32.4 33.1 28.0 26.3 25.4 27.7
    read_instancevar_slots 27.8 31.3 20.8 20.8 20.2 24.5
    read_namedtuple 73.8 57.5 45.0 46.8 18.4 23.2
    read_boundmethod 37.6 37.9 29.6 26.9 27.7 45.9

    மாறி மற்றும் பண்புக்கூறு எழுதும் அணுகல்:
    எழுத்து_உள்ளூர் 8.7 9.3 5.5 5.3 4.3 4.2
    எழுது_நான்லோக்கல் 10.5 11.1 5.6 5.5 4.7 4.9
    write_global 19.7 21.2 18.0 18.0 15.8 17.2
    எழுத_வகுப்பு 92.9 96.0 104.6 102.1 39.2 43.2
    write_instancevar 44.6 45.8 40.0 38.9 35.5 40.7
    எழுத_நிகழ்வு_ஸ்லாட்டுகள் 35.6 36.1 27.3 26.6 25.7 27.7

    தரவு கட்டமைப்பு வாசிப்பு அணுகல்:
    read_list 24.2 24.5 20.8 20.8 19.0 21.1
    read_deque 24.7 25.5 20.2 20.6 19.8 21.6
    read_dict 24.3 25.7 22.3 23.0 21.0 22.5
    read_strdict 22.6 24.3 19.5 21.2 18.9 21.6

    தரவு கட்டமைப்பு எழுதும் அணுகல்:
    எழுது_பட்டியல் 27.1 28.5 22.5 21.6 20.0 21.6
    எழுது_தேக் 28.7 30.1 22.7 21.8 23.5 23.2
    எழுது_டிக்ட் 31.4 33.3 29.3 29.2 24.7 27.8
    எழுத_கட்டுப்பாடு 28.4 29.9 27.5 25.2 23.1 29.8

    ஸ்டாக் (அல்லது வரிசை) செயல்பாடுகள்:
    list_append_pop 93.4 112.7 75.4 74.2 50.8 53.9
    deque_append_pop 43.5 57.0 49.4 49.2 42.5 45.5
    deque_append_popleft 43.7 57.3 49.7 49.7 42.8 45.5

    டைமிங் லூப்:
    loop_overhead 0.5 0.6 0.4 0.3 0.3 0.3

  • நீக்கப்பட்டது பல Python 2.7 செயல்பாடுகள் மற்றும் முறைகள் முன்பு நிறுத்தப்பட்டு, html.parser.HTMLParser இல் உள்ள unescape() முறை உட்பட, முந்தைய வெளியீட்டில் DeprecationWarning விளைவித்தது,
    tostring() மற்றும் fromstring() array.array இல், isAlive() threading இல். Thread, getchildren() மற்றும் getiterator() ElementTree, sys.getcheckinterval(), sys.setcheckinterval(), asyncio.Task.current_task(), asyncio.Task.all_tasks(), base64.encodestring() மற்றும் base64.decodestring().

ஆதாரம்: opennet.ru

கருத்தைச் சேர்