Die Dokumentation für functools.partial sagt, dass es „in etwa gleichwertig“ ist:Umsetzung functools.partial, die zusätzliche Argumente prepends
def partial(func, *args, **keywords):
def newfunc(*fargs, **fkeywords):
newkeywords = keywords.copy()
newkeywords.update(fkeywords)
return func(*(args + fargs), **newkeywords) # line to change
newfunc.func = func
newfunc.args = args
newfunc.keywords = keywords
return newfunc
Wenn ich eine Version, dass wird vorangestellt die zusätzlichen Argumente umsetzen wollten, es scheint als müsste ich nur die angezeigte Linie ändern.
Gibt es noch andere Features/Fehler, über die ich mir beim Kopieren dieses Codes Sorgen machen sollte?
Hatte nicht daran gedacht, das eingebaute zu unterklassifizieren. – Dave
Das ist großartig, aber ich denke, es sollte lauten: Klasse rpartial (teilweise): def __call __ (self, * args, ** kwargs): kw = self.keywords.copy() kw.update (kwargs) return self.func (* (args + self.args), ** kw) – ishmael
@ishmael danke, behoben. – ecatmur