Need help with Python scoping rules

Piet van Oostrum piet at
Thu Aug 27 22:07:51 CEST 2009

>>>>> kj < at> (k) wrote:

>k> No, the fact() function here represents an internal "helper"
>k> function.  It is meant to be called only once to help initialize
>k> a class variable that would be inconvenient to initialize otherwise;
>k> this helper function is not meant to be called from outside the
>k> class statement.  Granted, in the example I gave, the "helper"
>k> function (factorial) is a bit silly, but that was just intended as
>k> a simple and familiar example of a recursive function.  The actual
>k> function that motivated this post would be considerably more
>k> difficult to explain and would have obscured the point of the post.

Classes don't have helper functions; they have methods. Instance
methods, static methods or class methods. Your's isn't either of these.
Methods are to be called like `something.method(...)'.

Piet van Oostrum <piet at>
URL: [PGP 8DAE142BE17999C4]
Private email: piet at

More information about the Python-list mailing list