私はPythonの初心者ですので、これは簡単すぎるかもしれません! は、私は以下のように機能を持っていると想像:Pythonで置換を行う方法は?
def f(x,y):
return x**2 + 3*y
その後、私はPythonでこれを行う必要がありますどのように(p**2+2)
でx
を代用したいです!
私はPythonの初心者ですので、これは簡単すぎるかもしれません! は、私は以下のように機能を持っていると想像:Pythonで置換を行う方法は?
def f(x,y):
return x**2 + 3*y
その後、私はPythonでこれを行う必要がありますどのように(p**2+2)
でx
を代用したいです!
ただをp**2 + 2
に渡します。このようなあなたの関数を呼び出します。
f(p**2 + 2, y)
これはx = p**2 + 2
とf(x,y)
を評価し、あなたは完了です。
あなたが持っている現在のコードを書き直すことなく、純粋なPythonで知っている直接式置換を行う方法はありません。
シンボリックな操作をすることに興味があれば、SymPy
を見てみましょう:
from sympy import *
x, y, p = symbols("x y p")
expression = x**2 + 3*y
expression.subs(x, p**2 + 2) # prints out substituted equation
あなたはデコレータでこれを行うことができます。あなたに関心があるかもしれません。コードを変更せずにf(x, y)
の動作を変更することができます。
def change_x(func):
def intern(x, y):
return func(x**2+2, y)
return intern
@change_x
def f(x, y):
return x**2 + 3*y
今f(x, y)
戻りますがf(x, y)
とそれを呼び出すf(x**2 + 2, y)
これはデコレータは何ができるかを学ぶの外おそらくほとんど関心を持っている不自然な例を少し。この場合は使用しないことをお勧めします。
'(p ** 2 + 2)'に 'p'とは何ですか? –