Suche
Neues Release

Python 3.5 mit neuen Syntax-Features

Coman Hamilton

Python-Logo (Quelle: python.org)

Das finale Release von Python 3.5 enthält einen neuen Matrixmultiplikations-Operator, zwei neue Bibliotheksmodule und eine Reihe integrierter Features.

Das in der vergangenen Woche erfolgte Release von Python 3.5 brachte allerhand Verbesserungen mit sich. Zu den Highlights gehören drei neue Syntax-Features:

Koroutinen mit Await- und Async-Syntax: Pythons Unterstützung der asynchronen Programmierung wurde durch das Hinzufügen von Awaitable Objects, Koroutinen-Funktionen, asynchronen Iterationen und asynchronen Kontext-Managern verbessert.

Zusätzliche Unpacking-Generalisierungen: Python erweitert ab sofort den möglichen Einsatzzweck des iterablen Unpacking-Operator * sowie des Dictionary-Unpacking-Operator **. Dadurch ist es Programmierern nun möglich, in einem Funktionsaufruf eine beliebige Anzahl an Unpackings zu nutzen (Weitere Details dazu siehe hier).

Matrixmultiplikations-Operator: Die Matrix- bzw. Matrizenmultiplikation ist in der Mathematik eine multiplikative Verknüpfung von Matrizen. Pythons Matrixmultiplikation verfügt mit @ nun über einen dedizierten Infix-Operator. Das Python-Entwicklerteam hat das folgende Beispiel eines einfachen HTTP-Clients, der eine Koroutinen-Funktion mit der async def-Syntax nutzt, zur Anschauung bereitgestellt.

import asyncio

async def http_get(domain):
    reader, writer = await asyncio.open_connection(domain, 80)

    writer.write(b'\r\n'.join([
        b'GET / HTTP/1.1',
        b'Host: %b' % domain.encode('latin-1'),
        b'Connection: close',
        b'', b''
    ]))

    async for line in reader:
        print('>>>', line)

    writer.close()

loop = asyncio.get_event_loop()
try:
    loop.run_until_complete(http_get('example.com'))
finally:
    loop.close()

Python-Zip-Anwendungen und Type Hints

Mit den bisher vorgestellten Neuerungen ist allerdings noch nicht Schluss: So wurden mit Python 3.5 zwei neue Bibliotheksmodule, zipap und Type Hints, hinzugefügt. Das zipap-Modul ermöglicht mittels eines dedizierten Befehlszeilen-Tools sowie eines API die Erstellung ausführbarer Python-Zip-Anwendungen. Type Hints führt ein „provisorisches Modul“ zur Definition der Senantik von Funktionsannotationen ein. Im Rahmen des Python Enhancement Proposal definiert Python-Schöpfer Guido van Rossum das Ziel von Type Hints folgendermaßen:

This PEP aims to provide a standard syntax for type annotations, opening up Python code to easier static analysis and refactoring, potential runtime type checking, and (perhaps, in some contexts) code generation utilizing type information.

Abgesehen von Verbesserungen der Sicherheit und einem neuen Windows-Installer bietet Pythons neueste Version zudem einige integrierte Features:

  • bytes % args, bytearray % args: PEP 461: %-Formatierung für bytes und bytearray.
  • b'\xf0\x9f\x90\x8d'.hex(), bytearray(b'\xf0\x9f\x90\x8d').hex(), memoryview(b'\xf0\x9f\x90\x8d').hex(): Issue 9951 – Eine hex-Methode für bytes, bytearray und memoryview.
  • memoryview unterstützt nun die Tupel-Indexierung (inklusive mehrdimensionale).
  • Generatoren verfügen über ein neues gi_yieldfrom-Attribut, das das von „yield from“-Ausdrücken iterierte Objekt zurückgibt.
  • Eine neue RecursionError-Ausnahme, die bei Erreichen der maximalen Rekursionstiefe ausgelöst wird.

Wie gehabt sind sowohl der Download als auch eine Liste sämtlicher Änderungen auf python.org verfügbar.

Geschrieben von
Coman Hamilton
Coman Hamilton
Coman was editor of JAXenter.com at S&S Media Group. He has a master's degree in cultural studies and has written and edited content for numerous websites and magazines, as well as several ad agencies.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: