variable declaration

EP EP at zomething.com
Mon Jan 31 02:19:13 EST 2005


> ------------Original Message------------
> From: Alexander_Zatvornitskiy at p131.f3.n5025.z2.fidonet.org (Alexander Zatvornitskiy)

>
> Hello All!
> 
> I'am novice in python, and I find one very bad thing (from my point of 
> view) in
> language. There is no keyword or syntax to declare variable, like 'var' 
> in
> Pascal, or special syntax in C. It can cause very ugly errors,like 
> this:
> 
> epsilon=0
> S=0
> while epsilon<10:
>   S=S+epsilon
>   epselon=epsilon+1
> print S
> 
> It will print zero, and it is not easy to find such a bug!


Hmmm.  I am surely an expert in writing buggy code, but I can not say I make this error in Python.  Why is that?

I'm not sure, but a couple things that may help me miss making this mistake in practice may be (somewhat informal in my case) unit testing - I test for correct results for at least a few cases.

It may also help that with Python I can code at a somewhat higher conceptual level, or maybe it is just the syntax that helps avoid these problems:

>>>  for epsilon in range (0,10):
         S=S+epsilon
      
>>> for epsilon in range (0,10):
	S=S+epselon
	
Traceback (most recent call last):
  File "<pyshell#6>", line 2, in ?
    S=S+epselon
NameError: name 'epselon' is not defined


It may seem like jumping off a cliff, but the improvement in readability (the variable declarations being visual clutter) makes it much easier for me to see my code, and any typos in it.

It seems it would be simple enough to have one's code, or another script, automatically print out a sorted list of the variables - which would make the error you note obvious.  But I haven't needed this, yet at least.

You might like Python and find the lack of variable declaration checking not a problem.  It's worth a shot.






More information about the Python-list mailing list