Quoi de neuf dans Python 3.5

introduction

Selon la feuille de route de développement (PEP-478), Python 3.5 est prévu pour la sortie officielle le 13/09 (probablement heure des États-Unis). .. Une version supplémentaire candidate (rc4) a été [publiée] le 9/9 (https://www.python.org/downloads/release/python-350rc4/), qui est peut-être un peu en retard, mais probablement Il sortira d'ici une semaine. J'ai donc fait un résumé en japonais des changements dans Python 3.5 + un commentaire. L'histoire originale est «Summary --Release Highlights» au début de ici.

Pour essayer Python3.5, téléchargez les dernières versions candidates à partir de ici. Ou si vous utilisez pyenv, vous pouvez facilement l'installer avec pyenv install, mais la dernière version de pyenv v20150901 ne prend en charge que jusqu'à rc2, vous devez donc l'accepter ou récupérer pyenv depuis HEAD. Si vous utilisez un homebrew, cela ressemble à ceci.

brew uninstall pyenv #Si déjà installé
brew install pyenv --HEAD
pyenv install 3.5.0rc4
PostScript 2015/09/14

Comme prévu, 3.5.0 a été publié. Pour être honnête, je ne m'attendais pas à venir si tôt.

pyenv a également été mis à jour immédiatement vers 20150913, avec la version 3.5.0 officiellement prise en charge. C'est déjà sur Homebrew. Tout le monde travaille vite! Donc, si vous voulez l'essayer, tout va bien.

brew install pyenv #Ou si vous l'avez installé, mettez à niveau le café
pyenv install 3.5.0

Faits saillants de la version Python 3.5

Nouvelles fonctionnalités de syntaxe

Opérateur de multiplication matricielle

Ajout de la spécification proposée dans PEP-465 pour permettre l'écriture de la multiplication matricielle sous la forme de ʻa @ b`. .. La chose étrange est que la bibliothèque standard ne fournit pas une implémentation qui l'utilise, seulement les spécifications. Au lieu de cela, certaines bibliothèques externes, telles que numpy, ont annoncé une prise en charge.

Corroutine avec async et attend

Ajout de spécifications pour définir et utiliser les corroutines proposées dans PEP-492. Jusqu'à présent, il était possible de créer une routine cor en utilisant Generator, mais afin de le rendre plus facile à comprendre, les mots-clés async et await ont été introduits et les spécifications ont été développées.

Généralisation supplémentaire du déballage

Une extension d'expansion de valeur utilisant «*» et «**» comme proposé dans PEP-448. Il peut être utilisé plusieurs fois comme argument de fonction comme print (* [1], * [2], 3), ou il peut être utilisé dans des tapples, des listes et des dictionnaires comme [* range (4), 4]. Sera.

Nouveaux modules de bibliothèque

zipapp

Python a la capacité d'exécuter du code python zippé. De plus, depuis la v2.6! C'est un gaspillage d'avoir une fonctionnalité spéciale qui n'est pas utilisée sans que personne ne le sache (je ne le savais même pas!), Il y a donc une suggestion pour faciliter l'utilisation [PEP-441](https: //www.python. L'outil qui a été créé dans org / dev / peps / pep-0441 /) est zipapp. Nous appellerons le code Python renforcé Zip "Python Zip Application" et fournirons des fonctions pour le créer.

Nouvelles fonctionnalités intégrées

Formatage par% en octets et Bytearray

Jusqu'à présent, je pourrais faire quelque chose comme "% 04x "% 10, mais le résultat est de type str. Une extension qui lui permet d'être un type d'octets sous la forme de b"% 04x "% 10.

Prise en charge de la méthode hexadécimale pour Bytes, Bytearray, Memoryview

Vous pourrez faire des choses comme b '\ xf0 \ x9f \ x90 \ x8d'.hex ().

indexation de tuple dans la vue mémoire

Il semble que vous pourrez indexer avec tuple pour accéder aux éléments d'un tableau multidimensionnel (matrice).

Ajout de l'attribut gi_yieldfrom du générateur

Je n'ai pas vraiment compris la nécessité de cela ...

Nouvelle exception RecursionError

Type de RuntimeError qui se produit lorsque le nombre maximal de récursives est dépassé.

Nouvelle exception StopAsyncIteration

Exception levée à la fin d'une répétition avec Iterable asynchrone créé par async for.

Implémentation CPython

Gestionnaire d'erreurs modifié pour sys.stdin / sys.stdout

Lorsque LC_TYPE est la locale POSIX (locale C), sys.stdin et sys.stdout utiliseront désormais des gestionnaires d'erreur d'échappement de substitution au lieu de gestionnaires d'erreur stricts.

Abolition du .pyo

Lors de l'exécution de Python avec l'option -O ou -OO, les résultats de la compilation d'octets optimisés étaient stockés dans un fichier .pyo au lieu d'un .pyc. À partir de Python 3.5, il sera supprimé et stocké dans un fichier .pyc, et le niveau d'optimisation sera décrit dans le nom du fichier (par exemple, xxx.cpython-35.opt-1.pyc) (PEP-488)

Initialisation multiphase de l'extension

Jusqu'à présent, les modules et extensions intégrés ont été générés et initialisés à la fois. Cela prend la forme de générer la génération d'abord pour tous les modules, puis d'exécuter le code d'initialisation comme d'autres modules. (PEP-489)

Module de bibliothèque considérablement amélioré

C implémentation de OrderedDict

collections.OrderedDict a été réimplémenté en C, 4 à 100 fois plus vite!

Amélioration de tmpfile

Le type Bytes peut également être utilisé avec des arguments qui ne peuvent être passés qu'avec le type str (spécification de préfixe, etc.). Vous pourrez également spécifier Aucun.

Amélioration du module SSL

Ajout du support Memory BIO. Cette modification permet de séparer le traitement du protocole SSL du traitement réel d'E / S Socket.

Module de traçage amélioré

Ajout de classes TracebackException, StackSummary et FrameSummary plus légères

Amélioration de lru_cache

Functools.lru_cache a été fourni en tant que décorateur pour mettre en cache les résultats des appels de fonction, mais il a été réimplémenté en C.

Amélioration de la sécurité

SSLv3 aboli

Il peut être rendu disponible en utilisant ssl.SSLContext, mais il a été complètement supprimé de la bibliothèque standard. Ce changement a également été rétroporté vers la v3.4 et la v2.7. Ce serait une solution de contournement pour le problème de vulnérabilité SSLv3 appelé POODLE Attack. ..

Traitement des cookies amélioré

Analyse stricte des cookies pour éviter les attaques par injection.

Améliorations sous Windows

Introduction d'un nouveau programme d'installation pour remplacer MSI

Deux types sont disponibles: un programme d'installation Web qui télécharge les fichiers nécessaires à partir d'un petit programme d'installation au moment de l'installation et un programme d'installation hors ligne qui comprend tous les composants standard. Il existe respectivement une version 32 bits et une version 64 bits.

Utilisation de MSVC ++ 14.0

Python 3.5 pour Windows a été construit avec MSVC ++ 14.0 et l'extension doit également être compilée avec lui.

finalement

En plus de ceux présentés ci-dessus, Quoi de neuf dans Python 3.5 a divers changements. S'il y a quelque chose qui semble intéressant ou utilisable, j'adorerais le récupérer.

Recommended Posts

Quoi de neuf dans Python 3.5
Quoi de neuf dans Python 3.6
Nouveautés de Python 3.10 (Résumé)
Nouveau dans Python 3.4.0 (2) --enum
Nouveautés de Python 3.9 (Résumé)
Nouveau dans les dictionnaires de fusion python3.9
Nouveau dans Python 3.4.0 (1) --pathlib
Quadtree en Python --2
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Discord en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Nouveau dans Django 1.8 Expressions conditionnelles #djangoja
Nouvelles fonctionnalités de Python 3.4.0 (3) - Fonctions génériques à distribution unique
Quoi de neuf dans datetime qui est un peu plus utile dans Python 3
Liste triée en Python
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Modifier les polices en Python
Motif singleton en Python
Opérations sur les fichiers en Python