Ich versuche herauszufinden, was in meinem Typ Annotation am Anfang dieser Funktion zu setzen.Python Typ Hinting mit Flüche
Ich habe folgendes triviales Beispiel:
import curses
def main(stdscr):
stdscr.clear()
stdscr.addstr(2, 0, "What is the type of stdscr?")
stdscr.addstr(5, 0, "It is: {}".format(type(stdscr)))
stdscr.refresh()
stdscr.getkey()
curses.wrapper(main)
Das gibt <type '_curses.curses window'>
. Dies scheint nicht so zu sein, dass es mit Type-Hinting funktioniert, da es Leerzeichen enthält.
Das erwartete Ergebnis wäre
EDIT: Die Dokumentation ist hier falsch.WindowObject
aufgeführt in
the documentation. Ich kann keinen Pfad zu WindowObject in dem Curses-Modul selbst finden.
Wie schreibe ich main mit genauen type annotation?
Nur nicht. 'WindowObject' ist ein Dokumentationsfehler; Der Name des Fensterobjekttyps ist undokumentiert und kann sich ändern, und ich glaube nicht, dass der Fensterobjekttyp sogar als Modulattribut verfügbar ist. – user2357112
Absolutamente rechts @ user2357112, type() -Methode sagt immer dem Typ Objekt, egal was –
Dies ist ein seltsamer Fall obwohl. Ich habe keinen Typ() mit einem Leerzeichen darin gesehen. Wie geht die Typing-Bibliothek damit um? Ich sage nicht, dass ich es tun muss, aber das ist ein seltsamer Fall. – Technoloft