<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-forward-container"><br>
      <br>
      -------- Forwarded Message --------
      <table class="moz-email-headers-table" cellspacing="0"
        cellpadding="0" border="0">
        <tbody>
          <tr>
            <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Subject:
            </th>
            <td>Re: [python-users] Statische Typenprüfung in Python 3</td>
          </tr>
          <tr>
            <th valign="BASELINE" nowrap="nowrap" align="RIGHT">Date: </th>
            <td>Sun, 9 Dec 2018 21:40:41 +0100</td>
          </tr>
          <tr>
            <th valign="BASELINE" nowrap="nowrap" align="RIGHT">From: </th>
            <td>Dirk Hünniger <a class="moz-txt-link-rfc2396E" href="mailto:dirk.hunniger@googlemail.com"><dirk.hunniger@googlemail.com></a></td>
          </tr>
          <tr>
            <th valign="BASELINE" nowrap="nowrap" align="RIGHT">To: </th>
            <td>Michael Kesper <a class="moz-txt-link-rfc2396E" href="mailto:mkesper@schokokeks.org"><mkesper@schokokeks.org></a></td>
          </tr>
        </tbody>
      </table>
      <br>
      <br>
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <p>Hi,</p>
      <p>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.<br>
      </p>
      <p>Viele Grüße Dirk<br>
      </p>
      <div class="moz-cite-prefix">On 12/9/18 9:23 PM, Michael Kesper
        wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:ccf5b6af-bbcd-19b1-4219-8327a298a7f9@schokokeks.org">
        <pre class="moz-quote-pre" wrap="">Hallo Dirk,

On 09.12.18 12:33, Dirk Hünniger via python-users wrote:
</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">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:

<a class="moz-txt-link-freetext" href="http://pygtkindiclient.sourceforge.net/" moz-do-not-send="true">http://pygtkindiclient.sourceforge.net/</a>

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: 
</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">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:

<a class="moz-txt-link-freetext" href="https://renesd.blogspot.com/2017/02/is-type-tracing-for-python-useful-some.html" moz-do-not-send="true">https://renesd.blogspot.com/2017/02/is-type-tracing-for-python-useful-some.html</a>

Viele Grüße
Michael

[0] <a class="moz-txt-link-freetext" href="https://www.rust-lang.org/" moz-do-not-send="true">https://www.rust-lang.org/</a>

</pre>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <pre class="moz-quote-pre" wrap="">________________________________________

Diese Mail erhalten Sie ueber die Mailingliste python-users der Universitaet zu Koeln
Nachrichten an: <a class="moz-txt-link-abbreviated" href="mailto:python-users@uni-koeln.de" moz-do-not-send="true">python-users@uni-koeln.de</a>
Abonnement und Benutzereinstellungen: <a class="moz-txt-link-freetext" href="https://lists.uni-koeln.de/mailman/listinfo/python-users" moz-do-not-send="true">https://lists.uni-koeln.de/mailman/listinfo/python-users</a>
Listenarchiv: <a class="moz-txt-link-freetext" href="https://lists.uni-koeln.de/pipermail/python-users/" moz-do-not-send="true">https://lists.uni-koeln.de/pipermail/python-users/</a>

pyCologne Homepage: <a class="moz-txt-link-freetext" href="http://pycologne.de/" moz-do-not-send="true">http://pycologne.de/</a>
</pre>
      </blockquote>
    </div>
  </body>
</html>