Python -Typ Annotation für eindeutiger Wert, der "nicht undefiniert" darstellt [Duplikat]Python

Python-Programme
Anonymous
 Python -Typ Annotation für eindeutiger Wert, der "nicht undefiniert" darstellt [Duplikat]

Post by Anonymous »

Es gibt eine Idiom in Python, um so etwas wie zu tun, < /p>

Code: Select all

UNDEFINED = object()

def do_something(value=UNDEFINED):
if value is UNDEFINED:
do1()
else if value is None:
do2()
else:
do3()
Der Punkt ist, dass keiner ein gültiger Wert sein kann und nicht definierter ein paar andere Standardverhalten verursacht.
Die MyPy -Signatur wäre dann: < /p>

Code: Select all

def do_something(value=int|None|object):
...
< /code>
, was irgendwie sinnlos erscheint, da alles ein Objekt ist. < /p>
Literal[UNDEFINED]
ist auch nicht gültig.

Code: Select all

class _Undefined:
pass

UNDEFINED = _Undefined()
< /code>
und < /p>
def do_something(value=int|None|_Undefined):
...
Es ist in der Nähe, führt jedoch Eckfälle ein, von denen jemand _undefined () (eine neue Instanz erstellen) und bedeutet, dass ich mit ISInstance besser mithilfe von als mit der Verwendung von ISInstance> stattfinden würde, anstatt mit Wert ist undefiniert Wie die alte Idiom ermutigt.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post