Was ist der Typhinweis für (a:int,b:int=1,c:int=2,*d:str,**e:int)->int oder einige komplexere Funktionen in Python? [gesPython

Python-Programme
Guest
 Was ist der Typhinweis für (a:int,b:int=1,c:int=2,*d:str,**e:int)->int oder einige komplexere Funktionen in Python? [ges

Post by Guest »

Wie der Titel schon sagt, wenn es einige Funktionen wie diese gibt:

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
und speichern Sie sie in Variablen:

Code: Select all

v1: SOME_MAGICAL_TYPE_HINT1 = f1
v2: SOME_MAGICAL_TYPE_HINT2 = f2
Wie sollten die Typhinweise aussehen, wenn:

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
Verhalten Sie sich einfach genauso wie f1 und f2?
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]
was darstellt:

Code: Select all

def f(a: int, *b: int) -> str:
pass
aber das entspricht nicht ganz meinen Anforderungen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post