It is not that Python can't, but it don't. The difference is in the type systems that the designers of the languages choose to follow.
Python uses duck typing and has typed objects but untyped variable names. Type constraints are not checked at compile time; rather, operations on an object may fail, signifying that the given object is not of a suitable type. Despite being dynamically typed, Python is strongly typed, forbidding operations that are not well-defined (for example, adding a number to a string) rather than silently attempting to make sense of them.
Scala is a statically typed language, that is, types are checked at compile time. A local type inference mechanism takes care that the user is not required to annotate the program with redundant type information. Operations that break type constraints leads to compiler errors, not runtime errors. Also see The Purpose of Scala's Type System, especially the section where duck typing is discussed.