sympy.Function is absolutely designed to be subclassed.
If f = Function('f'), then f is a subclass of UndefinedFunction, and
f(x) is an instance of AppliedUndef (both can be imported from
sympy.core.function). You can find custom functions with
y.atoms(AppliedUndef).
Aaron Meurer
On Wed, Apr 13, 2016 at 8:35 AM, Nico <[email protected]> wrote:
> To get all function from an expression, one can do
> ```
> from sympy import *
>
> f = Function('f')
> x = Symbol('x')
> y = f(x) + 2 * sin(x)
>
> for fun in y.atoms(Function):
> print(fun.func)
> ```
> which in this case will print out `f` and `sin`.
>
> I would now like to distinguish between function that I defined myself (`f`)
> the ones that come from elsewhere. I though about subclassing
> `sympy.Function`, but apparently it's not exactly meant to be used that way
> [1].
>
> Any hints?
>
> Cheers,
> Nico
>
>
> [1] https://groups.google.com/forum/#!topic/sympy/pU81Trc_Xr8
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/4c4c052e-7b95-4661-9356-b21fc0a271b0%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/CAKgW%3D6Jt0htnUThLaxs20XgEEzmCrnOu-wWZ3C_iyp%3DpmxtRaQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.