У меня есть программа, подобная приведенной ниже, она прекрасно работает, когда у каждой функции есть только один параметр.
import pandas as pd
df = pd.DataFrame([1])
df.columns = ['number']
def add_one(x):
return x+1
def add_two(x):
return x+2
class Functions:
add_one = "add_one"
add_two = "add_two"
def main(df, func_name):
return df.number.apply(eval(func_name))
func_name = Functions.add_one
main(df, func_name)
Но я добавил еще один параметр к каждой функции, она вернула ошибку:
TypeError: 'int' object is not callable.
Как я могу заставить его работать с двумя параметрами?
import pandas as pd
df = pd.DataFrame([1])
df.columns = ['number']
def add_one(x, a):
return x+1+a
def add_two(x, a):
return x+2+a
class Functions:
add_one = "add_one"
add_two = "add_two"
def main(df, func_name):
a = 1
return df.number.apply(eval(func_name + '(x, a)'))
func_name = Functions.add_one
main(df, func_name)