On Fri, 06 May 2011 14:39:15 -0500, harrismh777 wrote:

>     On the other hand, consider this 3.x code snip:
> 
>     print("the %s is %d" % ('sky', 'blue'))
> 
> 
>     That formatting will throw an exception, because the format
> construct is restricting the format entry to be a number, which 'blue'
> clearly isn't....

Er, yes. That's clearly deliberate, because the target uses %d rather 
than %s. If the author wanted to accept anything, she would used %r or %s.

You might as well argue that:

print("the {} is {}".format('sky', int(x)))

is wrong, because if you leave the int out, any object can be used.




>     The following print() is better, because *any* time or *most* types
> can be substituted and the 'polymorphism' of Python kicks in allowing
> for that, as so:
> 
>      print("the {} is {}".format('sky', 3.4))


This is not comparing apples with apples. The format equivalent is:

print("the {} is {:d}".format('sky', 'blue'))

which will also raise an exception, ValueError instead of TypeError.



-- 
Steven

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to