Vom documentation
Klasse typing.Union
Union Typ; Union [X, Y] bedeutet, entweder X oder Y.
Daraus ergibt sich die richtige Art und Weise mehr als ein Rückgabedatentyp darzustellen, ist
from typing import Union
def foo(client_id: str) -> Union[list,bool]
Aber tun, dass die Eingabe beachten wird nicht erzwungen. Python bleibt weiterhin eine dynamisch typisierte Sprache. Die Annotationssyntax wurde entwickelt, um bei der Entwicklung des Codes vor der Freigabe in die Produktion zu helfen. Wie PEP 484 feststellt, "findet zur Laufzeit keine Typüberprüfung statt".
Wie Sie sehen können, übergebe ich einen int-Wert und eine str. Die __annotations__
wird jedoch auf die entsprechenden Werte gesetzt.
>>> foo.__annotations__
{'return': <class 'list'>, 'a': <class 'str'>}
Bitte gehen für mehr über Typ Hinweise durch PEP 483. Siehe auch What are Type hints in Python 3.5?
Bitte beachten Sie, dass dies nur für Python 3.5 und aufwärts verfügbar ist. Dies wird deutlich in PEP 484 erwähnt.
zurückgegeben werden kann, wie erhalten Sie entweder eine Liste oder einen Boolean? –
@PadraicCunningham Vielleicht ist die Implementierung * Ich schicke dir meine ID, du schickst mir entweder eine Liste oder einen booleschen *: D –