On Thu, 05 Jul 2018 13:54:28 +0200, Antoon Pardon wrote: > On 05-07-18 11:59, Steven D'Aprano wrote: >> On Thu, 05 Jul 2018 17:34:55 +1200, Gregory Ewing wrote: >> >> >>>> Indeed, that's often the best way, except for the redundant type >>>> hint, which makes you That Guy: >>>> >>>> x: int = 0 # set x to the int 0 >>> But you've shown in an earlier example that such a hint is *not* >>> always redundant >> But it is redundant in *that* example. Your hint is not giving any more >> information that what the reader, or type checker, can already infer. > > Yes it gives more information. Without the hint you can only interfere > that it is an int at that point.
That would be utterly pointless: x = 3 # infer x must be an int, but only at this point y = x + "Hello world" # who knows what x is now? maybe it's okay A type checker that did that would be a waste of time. > IIUC, with the hint you can interfere > it is supposed to be an int during its life time, not just at that > point. No. Mypy considers the initial assignment as the definition of a variable. If you do not explicitly specify the type of the variable, mypy infers the type based on the static type of the value expression http://mypy.readthedocs.io/en/latest/type_inference_and_annotations.html This is not an innovation of Mypy. It's how type inference is supposed to work. If a particular type checker doesn't do that, it is doing it wrong. -- Steven D'Aprano "Ever since I learned about confirmation bias, I've been seeing it everywhere." -- Jon Ronson -- https://mail.python.org/mailman/listinfo/python-list