Selon le plan indiqué sur le site officiel de Python, la version officielle de Python 3.6 devrait être publiée le 16 décembre 2016, soit ce vendredi. Depuis mai de l'année dernière, Python 3.6 est en cours de développement et 4 versions Alpha, 4 versions Beta et une version Candidate ont été publiées par intermittence.
Nouvelles fonctionnalités de syntaxe
1. Littéraux de chaîne formatés
C'est-à-dire qu'en ajoutant le préfixe f ou F avant les chaînes ordinaires, l'effet est similaire à str.format( ). Par exemple,
name = "Fred" print(f"He said his name is {name}.") # 'He said his name is Fred.'
équivaut à :
print("He said his name is {name}.".format(**locals()))
De plus, cette fonctionnalité prend également en charge les champs imbriqués, tels que :
width = 10 precision = 4 value = decimal.Decimal("12.34567") print(f"result: {value:{width}.{precision}}") #'result: 12.35'
2. Annotations de variables
Il s'agit des Typehints disponibles depuis Python 3.5. Dans Python3.5, il est utilisé comme ceci :
from typing import List def test(a: List[int], b: int) -> int: return a[0] + b print(test([3, 1], 2))
La vérification de la syntaxe ici est uniquement générée dans l'éditeur (comme Pycharm). En utilisation réelle, une vérification stricte n'est pas effectuée.
Dans Python3.6, une nouvelle syntaxe a été introduite :
from typing import List, Dict primes: List[int] = [] captain: str # 此时没有初始值 class Starship: stats: Dict[str, int] = {}
3. Underscores in Numeric Literals (Underscores in Numeric Literals)
permet l'utilisation de traits de soulignement dans les nombres. pour améliorer la lisibilité des nombres à plusieurs chiffres.
a = 1_000_000_000_000_000 # 1000000000000000 b = 0x_FF_FF_FF_FF # 4294967295
De plus, "String Formatting" prend également en charge l'option "_" pour imprimer une chaîne numérique plus lisible :
'{:_}'.format(1000000) # '1_000_000' '{:_x}'.format(0xFFFFFFFF) # 'ffff_ffff'
4. Générateurs
Dans Python 3.5, les nouvelles syntaxes async et wait sont introduites pour implémenter les coroutines. Cependant, il existe une restriction. Yield et wait ne peuvent pas être utilisés simultanément dans le même corps de fonction. Dans Python3.6, cette restriction est assouplie. Python3.6 permet la définition de générateurs asynchrones :
async def ticker(delay, to): """Yield numbers from 0 to *to* every *delay* seconds.""" for i in range(to): yield i await asyncio.sleep(delay)
<.>5. Les compréhensions asynchrones
permettent l'utilisation de la syntaxe async for ou wait dans les analyseurs de listes, d'ensembles et de dictionnaires.
result = [i async for i in aiter() if i % 2] result = [await fun() for fun in funcs if await condition()]
Nouveau module ajoutéUn nouveau module a été ajouté à la Python Standard Library (The Standard Library) : secrets. Ce module est utilisé pour générer des nombres aléatoires plus sécurisés pour gérer les données, telles que les mots de passe, l'authentification de compte, les jetons de sécurité et les secrets associés. Pour une utilisation spécifique, veuillez vous référer à la documentation officielle : secrets
Autres nouvelles fonctionnalités1 La nouvelle variable d'environnement PYTHONMALLOC permet aux développeurs de définir l'allocateur de mémoire, d'enregistrer des hooks de débogage, etc.
2. Le module asyncio est plus stable et efficace, et n'est plus un module temporaire, et les API qu'il contient sont également des versions stables.
3. Le module de saisie a également été amélioré et n'est plus un module temporaire.
4. datetime.strftime et date.strftime commencent à prendre en charge les identifiants de temps ISO 8601 %G, %u, %V.
5. Les modules hashlib et ssl commencent à prendre en charge OpenSSL1.1.0.
6. Le module hashlib commence à prendre en charge de nouveaux algorithmes de hachage, tels que BLAKE2, SHA-3 et SHAKE.
7. L'encodage par défaut du système de fichiers et de la console sous Windows est remplacé par UTF-8.
8. Les fonctions json.load() et json.loads() du module json commencent à prendre en charge les entrées de type binaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!