Python 3.6¶
A Python 3.6 beta 1 2016. szeptember 12-én jelent meg, az új funkciók összefoglalója itt található:
Új szintaktikai funkciók |
Állapot |
|
Literális karakterlánc-formázás |
Kész |
|
Aláhúzásjelek numerikus literálokban |
Kész |
|
Aszinkron generátorok |
||
Szintaxis változó-annotációkhoz (ideiglenes) |
Kész |
|
Aszinkron listaértelmezések |
||
Új beépített funkciók |
||
A kwargs sorrendjének megőrzése egy függvényben |
||
Az osztálylétrehozás egyszerűbb testreszabása |
Részleges [1] |
|
Az osztályattribútumok definíciós sorrendjének megőrzése |
||
A standard könyvtár változásai |
||
Helyi idő egyértelműsítése |
||
Secrets modul hozzáadása a standard könyvtárhoz |
||
Fájlrendszer-útvonal protokoll hozzáadása |
||
CPython belső működése |
||
Privát verzió hozzáadása a dict-hez |
Nem lesz megvalósítva |
|
Képkocka-kiértékelő API hozzáadása a CPythonhoz |
||
Linux/Windows változások |
||
Az |
||
A Windows konzol kódolásának módosítása UTF-8-ra |
||
A Windows fájlrendszer-kódolásának módosítása UTF-8-ra |
||
Egyéb nyelvi változások:
Egy global vagy nonlocal utasításnak immár szövegszerűen meg kell jelennie az érintett név első használata előtt, ugyanazon hatókörön belül. Korábban ez SyntaxWarning volt. |
|
Mostantól lehetséges egy speciális metódust None-ra állítani annak jelzésére, hogy a megfelelő művelet nem érhető el. Például ha egy osztály a __iter__() metódust None-ra állítja, az osztály nem iterálható. |
|
A megismételt visszakövetési sorok hosszú sorozatait mostantól a [Previous line repeated {count} more times] formában rövidíti. |
|
Az import mostantól az új ModuleNotFoundError kivételt veti fel, ha nem talál egy modult. Az ImportError-t (try-except szerkezetben) jelenleg ellenőrző kód továbbra is működni fog. |
|
A nulla argumentumú super()-re támaszkodó osztálymetódusok mostantól helyesen működnek, amikor metaosztály-metódusokból hívják meg őket az osztálylétrehozás során. |
A beépített modulok változásai:
Az array.array kimerített iterátorai mostantól kimerítve maradnak akkor is, ha az iterált tömböt kibővítik. |
|
A b2a_base64() függvény mostantól elfogad egy opcionális newline kulcsszó-argumentumot annak szabályozására, hogy az újsor karakter hozzá legyen-e fűzve a visszatérési értékhez. |
Kész |
Hozzáadásra került az új cmath.tau (τ) konstans. |
|
Új konstansok: cmath.inf és cmath.nan a math.inf és math.nan megfelelőjeként, valamint cmath.infj és cmath.nanj a komplex repr által használt formátumhoz illeszkedően. |
|
Hozzáadásra került az új Collection absztrakt alaposztály, amely a méretezett iterálható tárolóosztályokat reprezentálja. |
|
Az új Reversible absztrakt alaposztály olyan iterálható osztályokat reprezentál, amelyek a __reversed__() metódust is biztosítják. |
|
Az új AsyncGenerator absztrakt alaposztály az aszinkron generátorokat reprezentálja. |
|
A namedtuple() függvény mostantól elfogad egy opcionális module kulcsszó-argumentumot, amelyet, ha megadnak, a visszaadott named tuple osztály __module__ attribútumához használ. |
|
A namedtuple() verbose és rename argumentumai mostantól csak kulcsszóként adhatók meg. |
|
A rekurzív collections.deque példányok mostantól pickle-ölhetők. |
|
A BLAKE2 hash-függvények hozzáadásra kerültek a modulhoz. A blake2b() és a blake2s() mindig elérhető, és a BLAKE2 teljes funkciókészletét támogatja. |
|
Hozzáadásra kerültek a SHA-3 hash-függvények: sha3_224(), sha3_256(), sha3_384(), sha3_512(), valamint a SHAKE hash-függvények: shake_128() és shake_256(). |
|
A jelszó-alapú kulcsleképező függvény, a scrypt(), mostantól elérhető OpenSSL 1.1.0 és újabb verziókkal. |
|
A json.load() és a json.loads() mostantól bináris bemenetet is támogat. A kódolt JSON-t UTF-8, UTF-16 vagy UTF-32 használatával kell ábrázolni. |
|
Hozzáadásra került az új math.tau (τ) konstans. |
Kész |
Egy új close() metódus lehetővé teszi egy scandir() iterátor explicit lezárását. A scandir() iterátor mostantól támogatja a context manager protokollt. |
|
Linuxon az os.urandom() mostantól blokkol mindaddig, amíg a rendszer urandom entrópia-készlete inicializálva nincs, a biztonság növelése érdekében. |
|
A Linux getrandom() rendszerhívás (véletlen bájtok lekérése) mostantól az új os.getrandom() függvényként érhető el. |
|
Hozzáadásra került a módosító-tartományok támogatása reguláris kifejezésekben. Példák: a «(?i:p)ython» illeszkedik a «python» és a «Python» szövegekre, de a «PYTHON»-ra nem; a «(?i)g(?-i:v)r» illeszkedik a «GvR» és a «gvr» szövegekre, de a «GVR»-re nem. |
|
A Match objektum csoportjai a __getitem__ segítségével érhetők el, ami egyenértékű a group()-pal. Így a mo[«name»] mostantól egyenértékű a mo.group(«name»)-mel. |
|
A Match objektumok mostantól index-szerű objektumokat is támogatnak csoportindexként. |
|
Az ioctl() függvény mostantól támogatja a SIO_LOOPBACK_FAST_PATH vezérlőkódot. |
|
A getsockopt() konstansai – SO_DOMAIN, SO_PROTOCOL, SO_PEERSEC és SO_PASSSEC – mostantól támogatottak. |
|
A setsockopt() mostantól támogatja a setsockopt(level, optname, None, optlen: int) formát. |
|
A socket modul mostantól támogatja az AF_ALG címcsaládot a Linux Kernel crypto API-val való kapcsolódáshoz. Hozzáadásra kerültek az ALG_, SOL_ALG és sendmsg_afalg() elemek. |
|
Hozzáadásra kerültek az új Linux konstansok: TCP_USER_TIMEOUT és TCP_CONGESTION. |
|
Az ssl támogatja az OpenSSL 1.1.0-t. A minimálisan ajánlott verzió az 1.0.2. |
|
A 3DES eltávolításra került az alapértelmezett titkosítócsomagokból, és hozzáadásra kerültek a ChaCha20 Poly1305 titkosítócsomagok. |
|
Az SSLContext jobb alapértelmezett konfigurációval rendelkezik az opciók és titkosítók terén. |
|
Az SSL munkamenet az új SSLSession osztály segítségével átmásolható egyik kliensoldali kapcsolatból egy másikba. A TLS munkamenet-folytatás felgyorsíthatja a kezdeti kézfogást, csökkentheti a késleltetést és javíthatja a teljesítményt. |
|
Az új get_ciphers() metódussal lekérhető az engedélyezett titkosítók listája a titkosító-prioritás sorrendjében. |
|
Az összes konstans és jelző IntEnum és IntFlags típusúvá lett alakítva. |
|
Hozzáadásra kerültek az SSLContext-hez tartozó, kiszolgáló- és kliensoldal-specifikus TLS protokollok. |
|
Hozzáadásra került az SSLContext.post_handshake_auth a TLS 1.3 kézfogás utáni hitelesítés engedélyezéséhez, valamint az ssl.SSLSocket.verify_client_post_handshake() annak kezdeményezéséhez. |
|
mostantól támogatja az IEEE 754 fél-pontosságú lebegőpontos számokat az «e» formátumleírón keresztül. |
|
Az új getfilesystemencodeerrors() függvény annak a hibamódnak a nevét adja vissza, amelyet a Unicode fájlnevek és a bájtok fájlnevek közötti konverzióhoz használ. |
|
A compress() és a decompress() függvény mostantól elfogad kulcsszó-argumentumokat. |
|
Megjegyzések