Another option would be to directly compare the methods against known ones:
obj = func.__self__ if isinstance(obj, np.ufunc): if func is obj.reduce: got_reduction() Eric On Thu, 28 Jun 2018 at 17:19 Stephan Hoyer <sho...@gmail.com> wrote: > On Thu, Jun 28, 2018 at 1:12 PM Marten van Kerkwijk < > m.h.vankerkw...@gmail.com> wrote: > >> For C classes like the ufuncs, it seems `__self__` is defined for methods >> as well (at least, `np.add.reduce.__self__` gives `np.add`), but not a >> `__func__`. There is a `__name__` (="reduce"), though, which means that I >> think one can still retrieve what is needed (obviously, this also means >> `__array_ufunc__` could have been simpler...) >> > > Good point! > > I guess this means we should encourage using __name__ rather than > __func__. I would not want to preclude refactoring classes from Python to > C/Cython. > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion