检查 sympy 表达式是否包含函数

Check if sympy expression contains function

有没有办法以编程方式确定 SymPy 表达式是否包含 sympy.Functions?例如,从 a

from sympy import *

f = Function('f')
g = Function('g')

a = f(3) + g(5) + 1.0

print(a)

我想要获取对象 fg

使用atoms查找给定类型的所有原子:

import sympy as sy

f = sy.Function('f')
g = sy.Function('g')

a = f(3) + g(5) + 1.0

print(a)
# f(3) + g(5) + 1.0
print(a.atoms(sy.Function))

产量

set([f(3), g(5)])

要获取 Function 本身,

map(type, a.atoms(sy.Function))

产量

[f, g]