On Jun 4, 12:20 am, Ninereeds <[EMAIL PROTECTED]> wrote: > On Jun 4, 5:03 am, Thorsten Kampe <[EMAIL PROTECTED]> wrote: > > > for validanswer in validanswers: > > if myAnswers.myanswer in myAnswers.validAnswers[validanswer]: > > MyOptions['style'] = validanswer > > First, for small loops with loop variables whose meaning is obvious > from context, the most readable name is usually something like 'i' or > 'j'.
'i' and 'j' are the canonical names for for loops indices in languages that don't support proper iteration over a sequence. Using them for the iteration variable of a Python for loop (which is really a 'foreach' loop) would be at best confusing. (snip) > Based on this, your code might become something like... > > for i in validanswers: > if myAnswers.current in myAnswers.validList [i]: > MyOptions['style'] = i And this is *exactly* what one should not do in Python. If you want a generic name here, use 'item' instead. > It is also often useful to use a convention where a prefix identifies > whether a name is a (p)arameter, (l)ocal variable, or (m)ember You don't have to use any kind of prefix for attributes ('member' is not a Python idiom - remember that in Python, a method is also an attribute...) since the use of 'self' is mandatoy. And you usually don't need to distinguish 'local' from 'parameters', since 1/ parameters names *are* local 2/ pythonic methods and functions tends to be short, so you usually know which names are params. FWIW, prefixing names this way is something I've almost never seen in Python code. > variable - no prefix for functions, usually. For example, a simple > setter method Python has a pretty good support for computed attributes (look for 'property'), so you don't need explicit getters/setters. -- http://mail.python.org/mailman/listinfo/python-list