Need help with Python scoping rules
Dave Angel
davea at ieee.org
Wed Aug 26 15:50:46 EDT 2009
Carl Banks wrote:
> On Aug 26, 8:13 am, Dave Angel <da... at ieee.org> wrote:
>
>> You can probably work around this by replacing the staticmethod
>> decorator with an equivalent function call:.
>>
>> class Demo9(object):
>> def fact(n):
>> if n < 2:
>> return 1
>> else:
>> return n * Demo.fact(n - 1)
>>
>> _classvar =act(5)
>> fact =taticmethod(fact)
>>
>> print Demo9._classvar
>> xx =emo9()
>> print xx.fact(6)
>> print Demo9.fact(8)
>>
>
> This won't work normally. It only worked for you because you made a
> typo.
>
>
> Carl Banks
>
>
Sorry about the typo. I was trying out several different versions of
the class in the same module, and forgot to include to change Demo to
Demo9 in the recursive call.
I didn't like that approach anyway, as it smacked of taking advantage of
some implementation accident. The other approaches are more
straightforward.
DaveA
More information about the Python-list
mailing list