Mario Figueiredo <mar...@gmail.com>:
> Much better is:
>
>       def myfunction(arg1, arg2):
>       """
>       Normal docstring...
>       @typehint: (str, int) -> bool
>       """ 
>           return True 

I seem to remember an idea floated on the Scheme mailing list of using
assertions for such a purpose:

   def myfunction(arg1, arg2):
       assert isinstance(arg1, str) and isinstance(arg2, int)
       return True

The advantage is that the assertions can be as complex as you'd like:

   def weekday(day):
       assert isinstance(day, int) and 0 <= day <= 6
       ...

   def str_product(x, y):
       assert isinstance(x, int) and isinstance(y, str) or \
           isinstance(x, str) and isinstance(y, int)
       ...

Also, they have always been present in the language and assertion
semantics is fully compatible with static analysis.

Only I'd hate if that style became standard boilerplate...


Marko
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to