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

Dirk Hünniger dirk.hunniger at googlemail.com
So Dez 9 21:41:01 CET 2018




-------- Forwarded Message --------
Subject: 	Re: [python-users] Statische Typenprüfung in Python 3
Date: 	Sun, 9 Dec 2018 21:40:41 +0100
From: 	Dirk Hünniger <dirk.hunniger at googlemail.com>
To: 	Michael Kesper <mkesper at schokokeks.org>



Hi,

es gibt immerhin MonkeyType für Python 3, das macht dann die 
Laufzeitanalyse. Damit kann man Typen automatisch eintragen lassen. Das 
funktioniert zwar halbwegs aber nicht so richtig toll. Teilweise wird 
eine Union alles Subklassen ansteller der Superklasse erzeugt. Dann gibt 
es noch mypy. Damit kann man Typenfehler mit Hilfe der Annotationen 
suchen. Auch das war nicht voll erfolgreich. Aber immerhin habe ich 
einen Typenfehler gefunden und behoben. Ich bin ganz zuversichtlich, 
dass da im folgenden Jahrzehnt noch etwas deutlich besseres zur 
Verfügung stehen wird.

Viele Grüße Dirk

On 12/9/18 9:23 PM, Michael Kesper wrote:
> 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/
>
>
> ________________________________________
>
> Diese Mail erhalten Sie ueber die Mailingliste python-users der Universitaet zu Koeln
> Nachrichten an:python-users at uni-koeln.de
> Abonnement und Benutzereinstellungen:https://lists.uni-koeln.de/mailman/listinfo/python-users
> Listenarchiv:https://lists.uni-koeln.de/pipermail/python-users/
>
> pyCologne Homepage:http://pycologne.de/
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.uni-koeln.de/pipermail/python-users/attachments/20181209/205786a5/attachment-0001.html>


Mehr Informationen über die Mailingliste python-users