MooMaster wrote: > Hey guys, I'm trying to do some black magic voodoo and it's a little > late, so forgive me if this question seems obvious or has been asked > before. I tried doing a search on context objects and didn't find > anything that popped out, and I'm too tired to keep digging. > > I'm making a little program that is trying to do weird and sexy things > by fully leveraging the power of all the built-in beauty of Python. I > was trying to play around with the new features added into Python 2.5, > and ran into an unexpected issue...check this out: > >>>> moo = lambda x, y : >>>> decimal.Context(3).sqrt(decimal.Context(3).power(x,2) + >>>> decimal.Context(3).power(y,2)) moo > <function <lambda> at 0x02CD0EB0> >>>> row = [1,2,3,4,5] >>>> weight_vector = .00556 >>>> moo(sum(row), weight_vector) > Traceback (most recent call last): > File "<pyshell#5>", line 1, in <module> > moo(sum(row), weight_vector) > File "<pyshell#1>", line 1, in <lambda> > moo = lambda x, y : > decimal.Context(3).sqrt(decimal.Context(3).power(x,2) + > decimal.Context(3).power(y,2)) > File "C:\Python25\lib\decimal.py", line 2662, in power > return a.__pow__(b, modulo, context=self) > TypeError: wrapper __pow__ doesn't take keyword arguments > > I have no idea what keyword argument is getting passed to __pow__, > anyone know what's going on?
Weird implementation hacks distorting error messages :-) Context.power() expects a Decimal instance as its first argument: >>> from decimal import * >>> ctx = getcontext() >>> ctx.power(10, 2) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.5/decimal.py", line 2662, in power return a.__pow__(b, modulo, context=self) TypeError: wrapper __pow__ doesn't take keyword arguments >>> ctx.power(Decimal("10"), 2) Decimal("100") Peter -- http://mail.python.org/mailman/listinfo/python-list