find all index positions
John Machin
sjmachin at lexicon.net
Fri May 12 18:40:50 EDT 2006
On 13/05/2006 1:55 AM, vbgunz wrote:
> I forgot to explain my reason for over shadowing the 'string' built-in
> within my iterator. To me, it doesn't matter because the string
> identifier is temporary within the function and dies when the function
> dies. Also, I personally don't use the string function and prefer
> ''.join('hi'), etc. Also, at least for me just starting out in Python,
> I find 'string' to be as readable as possible :)
>
> what do you think about that?
>
1. 'string' is not a function, it is a module. I'm glad you don't use
the non-existent 'string function'.
2.
>>> ''.join('hi')
'hi'
You prefer to do that instead of what?
Look at the docs on the .join() method carefully, and consider the
following:
>>> '-'.join('hello')
'h-e-l-l-o'
>>>
3. Back to the shadowing thing:
'string' is admittedly not a good example to pull you up on, as that
module is little used these days. However it is the thin end of the
wedge, and your adding 'index' in round 2 just drove the wedge in a
little further. Once you start using words like 'file' and 'list' as
variable names, your code will be almost as *UN*readable as possible.
It's not just the shadowing possibility, it's the confusion in the
reader's mind between the usual/normal Python meaning of a word and the
meaning that you have attached to it. As you are just starting out in
Python, now is the time to acquire good habits.
Cheers,
John
More information about the Python-list
mailing list