Code: Select all
NO_VALUE = object()
def func(*, arg1 = NO_VALUE, arg2 = NO_VALUE):
if arg1 is NO_VALUE and arg2 is NO_VALUE:
raise ValueError("Pass in one of `arg1` or arg2`.")
if arg1 is not NO_VALUE and arg1:
# Do something with a truthy `arg1` value.
if arg2 is not NO_VALUE and arg2:
# Do something with a truthy `arg2` value.
Ich habe versucht, NO_VALUE zu einem leeren Tupel () zu machen, aber es scheint, dass das id() eines leeren Tupels ist immer(?) dasselbe wie id() eines anderen leeren Tupels. Ich möchte auch nicht NO_VALUE machen, z.B. ein leeres Listenobjekt, seitdem würde ich Linter-Warnungen über die Verwendung eines veränderlichen Standardwerts erhalten.
Mobile version