I agree that not writing any type annotations is the best, but that would 
require complex type inference. OCaml does type inference for it's duck-typed 
objective extension, but I'm not sure that such type inference is possible for 
a dynamic language like Python.

08.11.2013, 11:12, "Florian Weimer" <fwei...@redhat.com>:
> On 11/08/2013 11:08 AM, Vladimir Keleshev wrote:
>
>>>  You could also put asserts (and expressions which assert the presence of
>>>  certain attributes) in function bodies.
>>  Nice idea—that seems to give more flexibility, but (probably) makes it 
>> harder to implement.
>>
>>  I would love to write:
>>
>>       assert hasattr(file_like, 'read') and hasattr(file_like, 'write')
>>
>>  Or maybe:
>>
>>       assert file_like.read and file_like.write
>
> I actually expect something like this:
>
>      file_like.read(0)
>      file_like.write("")
>
> No assert statements, just straight-line code that is supposed to be
> easy to analyze.  If the analyzer cannot use the information that
> file_like must have a callable read attribute that takes an integer
> argument, it could still use the information that a "read" attribute
> must be present.
>
> --
> Florian Weimer / Red Hat Product Security Team
_______________________________________________
code-quality mailing list
code-quality@python.org
https://mail.python.org/mailman/listinfo/code-quality

Reply via email to