Код: Выделить всё
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
Код: Выделить всё
v1: SOME_MAGICAL_TYPE_HINT1 = f1
v2: SOME_MAGICAL_TYPE_HINT2 = f2
Код: Выделить всё
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
Или это вообще возможно и как лучше всего справиться с такими вещами?
просто вести себя так же, как f1 и f2?
Или это вообще возможно и как лучше всего справиться с такими вещами?
p>
Я поискал в Интернете и нашел это:
Код: Выделить всё
Callable[[int, *tuple[int, ...]], str]
Код: Выделить всё
def f(a: int, *b: int) -> str:
pass
Подробнее здесь: https://stackoverflow.com/questions/793 ... r-some-mor