I muri i te tau o te whakawhanaketanga, ka whakaatuhia te whakaputanga nui o te reo hotaka Python 3.10. Ka tautokohia te peka hou mo te kotahi me te hawhe tau, ka mutu mo etahi atu tau e toru me te haurua, ka hangaia he whakatikatika hei whakakore i nga whakaraeraetanga.
I te wa ano, i timata te whakamatautau alpha mo te peka Python 3.11 (i runga i te rarangi whanaketanga hou, ka timata te mahi i runga i te peka hou e rima marama i mua i te tukunga o te peka o mua ka tae ki te waahi whakamatautau alpha i te wa o te tukunga e whai ake nei. ). Ka noho te peka Python 3.11 ki te tuku alpha mo nga marama e whitu, ka taapirihia nga ahuatanga hou ka whakatika nga pepeke. I muri i tenei, ka whakamatauria nga putanga beta mo nga marama e toru, i te waa ka aukatihia te taapiri i nga waahanga hou ka aro katoa ki te whakatika i nga pepeke. Mo nga marama e rua kua pahure ake nei i mua i te tukunga, ka noho te peka ki te waahi o te kaitono tuku, ka whakahaerea te whakapumautanga whakamutunga.
Ko nga taapiri hou ki te Python 3.10 ko:
- Kua whakatinanahia nga kaiwhakahaere "whakaritea" me te "take" mo te whakataurite tauira, e pai ake ai te panui o nga waehere, te whakangawari i te whakaoritenga o nga mea a Python, me te whakapiki i te pono o te waehere ma te arowhai momo pateko matatau. Ko te whakatinanatanga he rite tonu ki te kaiwhakahaere "match" e whakaratohia ana i roto i te Scala, Rust, me te F #, e whakataurite ana i te hua o te korero kua tohua me te rarangi o nga tauira kua raarangi i roto i nga poraka i runga i te kaiwhakahaere "take".
def http_error(tūnga): te tūnga ōrite: kēhi 400: whakahoki “Tono kino” take 401|403|404: whakahoki “Kare e whakaaetia” take 418: whakahoki “He tiihi ahau” case _: whakahoki “He mea ke atu”
Ka taea e koe te wetewete i nga mea, nga tuples, nga rarangi, me nga raupapa tuku noa hei here i nga taurangi i runga i nga uara o mua. Ka whakaaetia ki te tautuhi i nga tauira kohanga, te whakamahi i etahi atu tikanga "mehemea" i roto i te tauira, whakamahi kopare (“[x, y, *rest]”), mapi matua/uara (hei tauira, {“bandwidth”: b, “latency ”: l} ki te tango i nga uara "bandwidth" me te "latency" mai i te papakupu), tango tauiraroto (":=" operator), whakamahia nga taumau kua whakaingoatia ki te tauira. I roto i nga karaehe, ka taea te whakarite i te whanonga orite ma te whakamahi i te tikanga "__match__()".
mai i nga karaehe raraunga kawemai i te akomanga raraunga @dataclass class Ira: x: int y: int def whereis(point): tohu taurite: take Point(0, 0): tā("Origin") take Point(0, y): tā(f" Y={y}") take Ira(x, 0): tā(f"X={x}") take Ira(): tā("He wāhi kē") take _: tā("Ehara i te tohu") ōrite tohu: take Ira(x, y) mena x == y: tā(f"Y=X i {x}") take Tohu(x, y): tā(f"Kare i te hauroki") Whero, KAMAriki, KAHURANGI = 0, 1, 2 te tae ōrite: pū Whero: tā(“Ka kite au i te whero!”) kākākākāriki: tā(“He kākāriki te tarutaru”) kēhi KAHURANGI: tā(“Kei te rongo au i te kahurangi :(“)
- Inaianei ka taea te whakamahi i nga reu i roto i te korero ki te wehewehe i te whakamaramatanga o te kohinga o nga kaiwhakahaere horopaki puta noa i nga rarangi maha. Ka whakaaetia ano kia waiho he piko i muri i te kaiwhakahaere horopaki whakamutunga i roto i te roopu: me ( CtxManager1() hei tauira1, CtxManager2() hei tauira2, CtxManager3() hei tauira3, ): ...
- Te pai ake o te ripoata mo te waahi waehere o nga hapa e pa ana ki nga taiapa me nga korukī i roto i nga kupu aho. Hei tauira, ina he taiapa kore katia, hei utu mo te whakaatu i te hapa wetereo i roto i te hanga e whai ake nei, ka whakaatu te atatohu inaianei i te awhi whakatuwhera me te tohu kaore he paraka kati. Kōnae "example.py", raina 1 e tumanakohia ana = {9:1, 18:2, 19:2, 27:3, 28:3, 29:3, 36:4, 37:4, ^SyntaxError: '{' kaore i katia
Kua taapirihia etahi atu karere hapa wetereo motuhake: kei te ngaro te tohu ":" i mua i te paraka me nga papakupu, kaua e wehewehe i te tuple me nga reu, kei te ngaro he piko i roto i nga rarangi, e tohu ana i te paraka "whakamatau" kaore he "haunga" me te "whakamutunga", ma te whakamahi "= " hei utu mo "= =" i roto i te whakataurite, e tohu ana i nga *-whakapuaki i roto i nga aho-f. I tua atu, ka whakarite kia miramirahia te katoa o nga korero raruraru, ehara i te timatanga anake, me nga korero tino marama ake mo te horopaki o nga hapa e pa ana ki te whakaurunga hē. >>> def foo(): ... if lel: ... x = 2 Kōnae " ", raina 3 x = 2 ^ IndentationError: i tumanakohia he paraka nuku i muri i te korero 'mehemea' kei te rarangi 2
I nga hapa i puta mai i nga hapa i roto i nga ingoa o nga huanga me nga ingoa taurangi i roto i tetahi mahi, ka puta he taunakitanga me te ingoa tika. >>>collections.namedtoplo Traceback (te waeatanga tata whakamutunga): Kōnae « ", raina 1, roto AttributeError: ko nga kohinga 'kohinga' kaore he huanga 'namedtoplo'. Ko te tikanga koe: nametuple?
- Mo nga taputapu patuiro me nga kaikorero korero, ka tukuna nga huihuinga me nga nama raina tika o te waehere kua mahia.
- I taapirihia te tautuhinga sys.flags.warn_default_encoding hei whakaatu i te whakatupato mo nga hapa pea e pa ana ki te TextIOWrapper me te tuwhera () te tukatuka i nga konae kua whakawaeheretia UTF-8 me te kore e tino tohu i te waahanga 'whakawaehere=»utf-8″' (Ka whakamahia te whakawaehere ASCII ma te taunoa) . Ko te tukunga hou e whakarato ana i te kaha ki te tautuhi i te uara 'whakawaehere = "locale"' ki te tautuhi i te whakawaehere i runga i te waahi o naianei.
- Kua taapirihia he kaiwhakahaere hou ki te waahanga patopato, e whakarato ana i nga taputapu mo te tautuhi momo tuhipoka, ka taea te whakamahi i te wetereo "X | Y" ki te whiriwhiri i tetahi o nga momo (momo X, momo Y ranei). def tapawha(tau: int | mānu) -> int | mānu: tau whakahoki ** 2 he rite ki te hanga i tautokohia i mua: def tapawha(tau: Union[int, float]) -> Union[int, float]: whakahoki tau ** 2
- Ko te kaiwhakahaere Whakakotahi me te taurangi ParamSpec kua taapirihia ki te waahanga patopato, ka taea e koe te tuku korero taapiri mo te tirotiro momo pateko ina whakamahi Callable. Ka taapirihia e te waahanga patopato nga uara motuhake TypeGuard hei tohu i nga mahi tiaki momo me te TypeAlias hei tautuhi i tetahi momo ingoa ingoa. StrCache: TypeAlias = 'Keteroki[str]' # he momo ingoa ingoa
- Ka whakatinanahia e te mahi zip() he haki "kaha", ka tohua, ka tirohia mena he rite te roa o nga tohenga e tukuna ana. >>> rārangi(zip(('a', 'b', 'c'), (1, 2, 3), strict=True)) [('a', 1), ('b', 2) , ('c', 3)] >>> rārangi(zip(awhe(3), ['utu', 'fi', 'fo', 'fum'], strict=True)) Traceback (tau waeatanga whakamutunga ): … UaraHapa: zip() tohenga 2 he roa ake i te tohenga 1
- Ko nga mahi hanga-roto hou aiter() me te taapiri() ka whakaarohia me te whakatinanatanga o nga taarite tukutahi ki nga mahi iter() me muri().
- Ko te mahi a nga kaihanga str(), bytes() me bytearray() i te wa e mahi ana me nga mea iti kua whakaterehia e te 30-40%.
- I whakaitihia te maha o nga mahi kawemai i te kōwae runpy. Ko te whakahau "python3 -m module_name" ka rere i te toharite 1.4 nga wa tere ake na te whakahekenga o nga waahanga kawemai mai i te 69 ki te 51.
- Ko te ako LOAD_ATTR e whakamahi ana i tetahi tikanga keteroki mo nga opcodes takitahi, i taea ai te tere o te mahi me nga huanga auau ki runga ki te 36%, me nga mokamoka ki te 44%.
- I te wa e hanga ana i te Python me te whiringa "--enable-optimizations", ka taea te aratau "-fno-semantic-interposition" inaianei, e taea ai te tere o te kaiwhakamaori ki te 30% ka whakaritea ki te hanga me te "--enable-shared. ” kōwhiringa.
- I roto i te hashlib me ngā kōwae SSL I tāpirihia te tautoko mō OpenSSL 3.0.0, ā, i whakamutua te tautoko mō ngā putanga OpenSSL tawhito ake i te 1.1.1.
- Kua tangohia te poroporo tawhito, i whakakapia i te peka o mua e te PEG (Parsing Expression Grammar) parser. Kua tangohia te kōwae whakahōputu. Kua tangohia te tawhā koropiko mai i te API asyncio. Kua tangohia nga tikanga i whakakorehia i mua. Ko nga mahi Py_UNICODE_str* e raweke ana i nga aho Py_UNICODE* kua tangohia.
- Ko te kōwae distutils kua whakakorehia, kua whakaritea mo te tango i roto i te Python 3.12. Hei utu mo nga distutils, e taunaki ana kia whakamahia nga taputapu setuptools, takai, turanga, shutil, subprocess me sysconfig modules. Ko te hanganga wstr i PyUnicodeObject kua whakakorehia, kua whakaritea mo te tango.
Source: opennet.ru
