Code: Select all
def f1(a: int, b: int = 1, c: int = 2, *d: str, **e: str):
pass
def f2(a: int, /, b: int, c: int = 2, *, d: int):
pass
Code: Select all
v1: SOME_MAGICAL_TYPE_HINT1 = f1
v2: SOME_MAGICAL_TYPE_HINT2 = f2
Code: Select all
v1(1) # pass check
v1(1, 1, 1) # pass check
v1(1, c=2) # pass check
v1(1, m='1') # pass check
v1(1, c='2') # fail check
v1() # fail check
v2(1, 1, d=1) # pass check
v2(1, b=1, d=1) # pass check
v2() # fail check
v2(1, 1, 1, 1) # fail check
Oder ist das überhaupt möglich und wie geht man mit solchen Dingen am besten um?
Ich habe im Internet gesucht und Folgendes gefunden:
Code: Select all
Callable[[int, *tuple[int, ...]], str]
Code: Select all
def f(a: int, *b: int) -> str:
pass