Laut dem Plan auf der offiziellen Python-Website wird die offizielle Version von Python 3.6 voraussichtlich am 16. Dezember 2016, also an diesem Freitag, veröffentlicht. Seit Mai letzten Jahres befindet sich Python 3.6 in der Entwicklung und es wurden zeitweise 4 Alpha-Versionen, 4 Beta-Versionen und eine Kandidatenversion veröffentlicht.
Neue Syntaxfunktionen
1. Formatierte String-Literale
Das heißt, das Hinzufügen des Präfixes f oder F vor gewöhnlichen Strings ähnelt dem von str.format( ). Beispielsweise entspricht
name = "Fred" print(f"He said his name is {name}.") # 'He said his name is Fred.'
:
print("He said his name is {name}.".format(**locals()))
Darüber hinaus unterstützt diese Funktion auch verschachtelte Felder wie:
width = 10 precision = 4 value = decimal.Decimal("12.34567") print(f"result: {value:{width}.{precision}}") #'result: 12.35'
2. Variablenanmerkungen
Dies sind die Typehints, die seit Python 3.5 verfügbar sind. In Python3.5 wird es wie folgt verwendet:
from typing import List def test(a: List[int], b: int) -> int: return a[0] + b print(test([3, 1], 2))
Die Syntaxprüfung wird hier nur im Editor generiert (z. B. Pycharm). Bei der tatsächlichen Verwendung wird keine strenge Prüfung durchgeführt.
In Python3.6 wurde eine neue Syntax eingeführt:
from typing import List, Dict primes: List[int] = [] captain: str # 此时没有初始值 class Starship: stats: Dict[str, int] = {}
3. Unterstriche in numerischen Literalen (Unterstriche in numerischen Literalen)
ermöglicht die Verwendung von Unterstrichen in Zahlen. um die Lesbarkeit mehrstelliger Zahlen zu verbessern.
a = 1_000_000_000_000_000 # 1000000000000000 b = 0x_FF_FF_FF_FF # 4294967295
Darüber hinaus unterstützt „String Formatting“ auch die Option „_“, um eine besser lesbare numerische Zeichenfolge auszudrucken:
'{:_}'.format(1000000) # '1_000_000' '{:_x}'.format(0xFFFFFFFF) # 'ffff_ffff'
4 Generatoren
In Python 3.5 werden die neuen Syntaxen „async“ und „await“ eingeführt, um Coroutinen zu implementieren. Es gibt jedoch eine Einschränkung. In Python3.6 ist diese Einschränkung nicht möglich:
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. Asynchronous Comprehensions
ermöglicht die Verwendung von Async für oder Wait-Syntax in Listen-, Mengen- und Wörterbuchparsern.
result = [i async for i in aiter() if i % 2] result = [await fun() for fun in funcs if await condition()]
Neues Modul hinzugefügt
Der Python-Standardbibliothek (The Standard Library) wurde ein neues Modul hinzugefügt: Secrets. Dieses Modul wird verwendet, um einige sicherere Zufallszahlen zur Verwaltung von Daten wie Passwörtern, Kontoauthentifizierung, Sicherheitstokens und zugehörigen Geheimnissen zu generieren. Informationen zur spezifischen Verwendung finden Sie in der offiziellen Dokumentation: Geheimnisse
Weitere neue Funktionen
1. Mit der neuen Umgebungsvariablen PYTHONMALLOC können Entwickler die Speicherzuweisung festlegen, Debug-Hooks registrieren usw.
2. Das Asyncio-Modul ist stabiler und effizienter und kein temporäres Modul mehr, und die darin enthaltenen APIs sind ebenfalls stabile Versionen.
3. Das Tippmodul wurde ebenfalls verbessert und ist kein temporäres Modul mehr.
4. datetime.strftime und date.strftime beginnen mit der Unterstützung der ISO 8601-Zeitkennungen %G, %u, %V.
5. Die Hashlib- und SSL-Module beginnen mit der Unterstützung von OpenSSL1.1.0.
6. Das Hashlib-Modul beginnt mit der Unterstützung neuer Hash-Algorithmen wie BLAKE2, SHA-3 und SHAKE.
7. Die Standardkodierung von Dateisystem und Konsole unter Windows wird auf UTF-8 geändert.
8. Die Funktionen json.load() und json.loads() im JSON-Modul beginnen, binäre Eingaben zu unterstützen.
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der neuen Funktionen der offiziellen Version von Python 3.6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!