On 19 Sep 2009, at 11:16 , Steven D'Aprano wrote:
What sort of type checking is done? Pascal-style declarative type checking, or Haskell-style type inference? Can't answer the rest, but from his examples and if $type and $returnType are indeed type specifications placeholders (which would be the ducks), it would be a java-style static type system (…).
And it would probably be run at "compile" time given the name, doing the checking at runtime wouldn't be very static. As far as I'm concerned, it's a terrible idea. Because it doesn't fit well within Python as a dynamically typed language, because the syntax is ugly, because Java's C-inherited type prefixes look terrible and are extremely verbose, because Java's type system is pretty bad and finally because the proposal doesn't handle "generic" types, making it completely useless. I also haven't seen any example of typing an instance attribute, the only example involving classes creates a class attribute: class test: $type variable = value $returnType def method(self, $type variable): #do stuff return value