CM wrote: > On Thursday, January 30, 2014 5:14:57 PM UTC-5, Peter Otten wrote: > >> Hint: >> >> >>> def demo(): >> ... fake_data = ['n/a', 'n/a', 'n/a', 'n/a', '[omitted]', '12'] >> ... fake_result = not all(i == '[omitted]' for i in fake_data) >> ... print 'This is fake result: ', fake_result >> >> >>> demo() >> This is fake result: True >> >> >>> from numpy import all >> >>> demo() >> This is fake result: False > > That's brilliant, thanks! Now I'm just a bit unsure of what to do about > it. First, I don't actually have the line "from numpy import all" in that > module's code, although I have imports of numpy; I think it is getting > brought in through Matplotlib's pylab module, which I do import in that > module. > > In any case, what's the most Pythonic way to deal with this? My first > thought was to create the old all function and rename it so there would be > no conflict: > > (both of what follows taken from answers here: > http://stackoverflow.com/questions/18774388/re-import-aliased-shadowed- python-built-in-methods) > > builtin_all = __builtins__.all > > but I got the error: > > AttributeError: 'dict' object has no attribute 'all' > > So I wound up doing this: > > from __builtin__ import * > > which fixed the problem...but seems less than optimal, because what if I > wanted to have numpy's all still in play?
import numpy # you can now use numpy's all as numpy.all(...) del all # remove numpy's all from your module's global namespace and # thus make the builtin visible again -- https://mail.python.org/mailman/listinfo/python-list