Какова подсказка типа для (a:int,b:int=1,c:int=2,*d:str,**e:int)->int или некоторых более сложных функций в Python? [закPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Какова подсказка типа для (a:int,b:int=1,c:int=2,*d:str,**e:int)->int или некоторых более сложных функций в Python? [зак

Сообщение Anonymous »

Как сказано в заголовке, если есть такие функции:

Код: Выделить всё

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?
Или это вообще возможно и как лучше всего справиться с такими вещами?
просто вести себя так же, как f1 и f2?
Или это вообще возможно и как лучше всего справиться с такими вещами?
p>
Я поискал в Интернете и нашел это:

Код: Выделить всё

Callable[[int, *tuple[int, ...]], str]
который представляет:

Код: Выделить всё

def f(a: int, *b: int) -> str:
pass
но это не полностью соответствует моим требованиям.

Подробнее здесь: https://stackoverflow.com/questions/793 ... r-some-mor
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»