Was ist der Typ für Funktionen, die INT als erster Parameter und dann optionale Argumente [Duplikat]

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Was ist der Typ für Funktionen, die INT als erster Parameter und dann optionale Argumente [Duplikat]

by Anonymous » 13 Feb 2025, 06:20

Bedenken wir, dass ich Funktionen mit diesen habe: < /p>

Code: Select all

def f1(a: int, **other_args):
...

def f2(a: int, b: str, c: dict):
...

def f3(a: int, b: tuple[str], **other_args):
...
Alle diese Funktionen beginnen mit einem int als Argument und dann andere Argumente, die optional sein können oder nicht.
Jetzt möchte ich sie in einer Liste speichern: < /p>

Code: Select all

l: list[?] = [f1, f2, f3]
< /code>
Ich weiß, dass ich so etwas wie < /p>
 machen kannimport typing

param_spec = typing.ParamSpec('param_spec')
l: list[typing.Callable[typing.Concatenate[int, param_spec], typing.Any]] = [f1, f2, f3]
< /code>
Aber es würde bedeuten < /p>
l: list[typing.Callable[typing.Concatenate[int, ...], typing.Any]] = [f1, f2, f3]
Aber ich habe TypeError erhalten: Der letzte Parameter für die Verkettung sollte eine Paramspec -Variable sein.

Code: Select all

l: list[typing.Callable[[int, ...], typing.Any]] = [f1, f2, f3]
Aber in diesem Fall wird ... als *args betrachtet und nicht ** kWargs .
< Br /> Gibt es einen Typ, der diese Art von Funktionen beschreibt? Wie kann ich das tun?
Danke für deine Hilfe!

Top