Perl is worse!
Karl Ulbrich
kulbrich at yahoo.com
Fri Jul 28 19:29:52 EDT 2000
> A variable gets its type upon assignment. That is implicit typing.
Variables do not have type. Data has types. If a variable later
points to an object of a different type, then calculations using this
variable have a different type to contend with.
If variables became typed upon assignment, the following would fail:
a = 1
a = "z"
> >Huh? Where in Python did you find your declarations? I'm confused.
>
> a = None
> int(a)
>
> a is declared as None at assignment.
Not declared as. _Refers_ to None.
> >Well, because it doesn't really make a lot of sense if you want to convert
> >something to an integer when Python can't figure it out. If you're so
> >sure of yourself, you can always do:
> >
> >try:
> > a = int(b)
> >except ValueError:
> > a = 0
>
> Right, which is basically what I had to do except I left None as None.
> Just seems like a pain in the butt to do after I have allready made sure,
> beyond all doubt, that those variables contain numbers in the first place.
If they already contained numbers (well, strings of digits), and you were
certain, then simply:
a = int(b)
> A regex could return a string or None, only one of which is convertable to
> int. You must litter your code with such checks.
If you do this a *lot*, maybe a little code around re to return digits as
numbers, and None as 0, would be appropriate in that case?
Karl Ulbrich
More information about the Python-list
mailing list