[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Strong versus (weak|runtime) typing
At 11:57 13/02/2003 +1300, Berend de Boer wrote: > >>>>> "SMSean" == Sean McGrath <sean.mcgrath@p...> writes: > > SMSean> Python: > > SMSean> x = 1 y = "Hello" y = y + x > > SMSean> TypeError: cannot concatenate 'str' and 'int' > SMSean> objects > > SMSean> So Python is dynamically typed. i.e. at runtime. Not > SMSean> weakly typed. Just as Guido said and not what you said. > >In this particular context, does this error message not mean: I didn't >find a concatenate method in the 'str' class that has an 'int' as >argument? So that's not exactly about typing IMO. > >Coercion would be that either x or y would be coerced into the other >type before performing the operation. That would depend on the >operator (i.e. '+' would determine this rule). Right. If Python knows of a harmless coercion it can perform it. You only get the run-time typing error if Python knows of no sane automatic conversion to make the types of the operands compatible. In Python I can say x = atoi("42") and get back an object of type integer with the value 42. I cannot, and would not want to say: x = (ItsAnIntegerDammit)"42" as that basically would be forcing the system to do something that the system knows is very dodgy and likely to generate smoke. If the latter is weak typing then its just a source of bugs - like (void *) casting in C or those wonderful autoconversions that PL/1 used to get up to:-) It always amuses me to see developers using languages like Java spend so much time typing their variables/objects at declare time, only to spend the same amount of time telling the system what type they are when they come out of hash tables and so on. regards, Sean
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|