Ist es möglich, eine Funktion mit bestimmten Schlüsselwortargumenten zu definieren und dann einen Verweis auf dieselbe Funktion zu erstellen, aber verschiedene Schlüsselwortargumentwerte zu verwenden.Python - Funktionale Vererbung - Ändern von Schlüsselwortargumenten
z.B. Ich habe die folgende
def f_beta(x,a=2.7,b=3.05):
"""The un-normalised beta distribution function."""
return math.pow(x, a - 1.0)*math.pow(1.0 - x, b - 1.0)
und ich möchte etwas Gleichwertiges tun:
f = f_beta
g = f_beta(a=1.0, b=10.0)
wo f
eine Kopie der ursprünglichen Funktion ist, und g
ist die gleiche Funktion, jedoch mit unterschiedlichen Standardwerte für die Schlüsselwortargumente. Gibt es eine Möglichkeit, dies für g
zu tun, ohne f_beta
in eine Klasse zu bauen, und ohne verschiedene Funktionen neu schreiben zu müssen.
Motivation: habe ich eine Klasse, die eine Elementfunktion init_dist
aufweist, die an einem gewissen Punkt I im __init__()
definieren über:
self.init_dist = f_beta
und möchte in der Lage sein, in einer neuen Funktion zu übergeben .
Ich habe im folgenden betrachtete:
und haben bei der Suche nach keine Antworten kein Glück hatte, oder wo ich nach Referenzen suchen soll.
Genau das, was ich suchte. Danke @BlackBear – oliversm