In Artenstubs für die Python -Standardbibliothek habe ich einen besonderen Typ namens Maybenone Pop -up festgestellt, normalerweise in Form von Normaltyp | Maybenone . Zum Beispiel finde ich in der SQLite3-Cursor-Klasse Folgendes: < /p>
Code: Select all
class Cursor:
# May be None, but using `| MaybeNone` (`| Any`) instead to avoid slightly annoying false positives.
@property
def description(self) -> tuple[tuple[str, None, None, None, None, None, None], ...] | MaybeNone: ...
Die Definition dieses Maybenone ist angegeben als:
Code: Select all
# Marker for return types that include None, but where forcing the user to
# check for None can be detrimental. Sometimes called "the Any trick". See
# CONTRIBUTING.md for more information.
MaybeNone: TypeAlias = Any # stable
(Ich konnte keine zusätzlichen Informationen in der beitragen.md finden, von der ich annehme Die Absicht, einen Rückgabetyp so zu markieren, dass ein Benutzer nicht gezwungen ist, in Fällen zu prüfen, in denen der Null für die meisten Benutzer eher ein theoretisches
Problem ist. Aber wie erreicht das das Ziel?
scheint zu implizieren, dass der Rückgabetyp irgendetwas sein könnte, wenn ich sagen möchte, dass er irgendwann oder in seltsamen Fällen keine sein kann, so scheint dies nicht das auszudrücken Intent. (zumindest mit meiner Konfiguration?) Also, was erreicht das spezielle Tippen überhaupt im Vergleich zu einfach nichts?