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