2016-04-07 3 views
0

Я новичок в python, так что это может звучать слишком просто! представить, у меня есть функция, как показано ниже:как сделать подстановки в python?

def f(x,y): 
    return x**2 + 3*y 

, то я хочу, чтобы заменить x с (p**2+2) Как я должен сделать это в питона ?!

+1

Что такое 'p' в' (p ** 2 + 2) '? –

ответ

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 
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)

Это немного надуманный пример, который, вероятно, мало интереса вне обучения, что декораторы могут сделать; Я бы не рекомендовал использовать его в этом случае.

Смежные вопросы