我是python的新手,所以这听起来太容易了! 想象我有如下功能:
def f(x,y):
return x**2 + 3*y
然后我想用x
替换(p**2+2)
我应该如何在python中执行此操作?!
答案 0 :(得分:1)
你可以用装饰师做到这一点;您可能感兴趣或不感兴趣。它允许您在不改变代码的情况下更改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**2 + 2, y)
时,f(x, y)
会返回{{1}}
这是一个有点人为的例子,除了学习装饰者可以做什么之外可能没什么兴趣;我不建议在这种情况下使用它。
答案 1 :(得分:0)
只需传递 p**2 + 2
到您的功能。像这样调用你的函数:
f(p**2 + 2, y)
这将使用f(x,y)
评估x = p**2 + 2
,您已完成。
我无法在纯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