[python-users] Statische Typenprüfung in Python 3

Michael Kesper mkesper at schokokeks.org
So Dez 9 21:23:13 CET 2018


Hallo Dirk,

On 09.12.18 12:33, Dirk Hünniger via python-users wrote:
> ich habe soeben gelesen, dass es in neueren Versionen von Python 3 die Möglichkeit gibt, Typen explizit anzugeben (gradual typing). Hierüber bin ich hoch erfreut. Ich habe gerade meine nun schon mehr als 10 Jahre alte Diplomarbeit von Python 2 auf Python 3 portiert. Siehe hier:
> 
> http://pygtkindiclient.sourceforge.net/
> 
> Ich würde jetzt gerne Typen hinzufügen. Nur würde ich ungerne das alles von Hand eintippen. Gibt es ein Programm was versucht die Typensignaturen selbstständig herauszufinden. So etwa wie bei Hindley–Milner. Dass das nicht in allen Fällen gehen kann ist schon klar. Aber vielleicht geht es so weit, dass ich nur noch 10% der Typensignaturen selber tippen muss: 

Also Typenannotationen in Python3 werden eigentlich nur für die
Kennzeichnung von Funktions- / Methodensignaturen genutzt und haben für
CPython zumindest im Ablauf keine Bewandnis.
Sie erfüllen dennoch eine wichtige Funktion für die eigene Klarheit und
Übersicht sowie Hilfsmittel wie IDEs.
Ich wüsste allerdings nicht, wie dabei etwas rein aus der Definition
automatisch herausgefunden werden könnte.
In rust [0] z.B., einer Sprache mit moderner, starker statischer
Typisierung, müssen trotz weitestgehender Ableitung der Typen diese für
die Funktionen auf jeden Fall angegeben werden.
Was man versuchen kann ist eine Laufzeitanalyse, welche Typen derzeit
tatsächlich benutzt werden (type tracing). Ein Blog dazu:

https://renesd.blogspot.com/2017/02/is-type-tracing-for-python-useful-some.html

Viele Grüße
Michael

[0] https://www.rust-lang.org/

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 659 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.uni-koeln.de/pipermail/python-users/attachments/20181209/49c16457/attachment.sig>


Mehr Informationen über die Mailingliste python-users