"EP" <[EMAIL PROTECTED]> said:
>> ------------Original Message------------
>> From: [EMAIL PROTECTED] (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.
>
>
class MyVars(object):
__slots__ = ['epsilon', 'thud', 'foo']
mv = MyVars()
mv.epselon = 42
Traceback (most recent call last)
/home/dw/KirbyBase-1.7/<console>
AttributeError: 'MyVars' object has no attribute 'epselon'
mv.epsilon = 42
--
http://mail.python.org/mailman/listinfo/python-list