2016-06-28 13 views
2

Manchmal kann ein Argument für eine Funktion, die ich schreibe, von jedem Typ sein, solange es eine hashable ist - zum Beispiel, weil meine Funktion es zu einem Satz hinzufügt oder es als Wörterbuchschlüssel verwendet.Typhinweis für "hashable"

Gibt es eine Möglichkeit, diese Tatsache mit den in Python 3.5 eingeführten Hinweisen vom Typ PEP 484 einzutippen? Das Modul typing scheint keinen hashbaren Typ zu enthalten, aber gibt es auch andere Wege?

+0

Ich wollte gerade die gleiche Antwort posten. Wenn ein ABC es tut, wird es durch Tippen wieder exportiert. Es gibt auch 'typing.Generator' und' typing.Sized'. –

Antwort

4

Das typing Modul tut in der Tat einen Hashable Typen enthalten, die einfach nicht in der aktuellen Version von the docs dokumentiert. Es ist ein Alias ​​für collections.abc.Hashable.

>>> import typing 
>>> typing.Hashable 
<class 'collections.abc.Hashable'> 
+0

Ich denke, das ist der Fall, weil hashable nicht generisch sein muss, also gibt es keinen Gewinn bei der "Neuimplementierung" in "typing", während eine Liste (oder Sammlung) die generischen Informationen für die Typsicherheit benötigt. – syntonym

Verwandte Themen