Syntax question

dn PythonList at DancesWithMice.info
Sun Aug 16 05:20:14 EDT 2020


On 16/08/2020 20:12, Klaus Jantzen wrote:
> Hi,
> 
> the other day I came across the book "Classic Computer Science Problems 
> in Python" by David Kopec.
> 
> The function definitions in the examples  like
> 
> =====
> def fib2(n: int) -> int:
>      if n < 2:  # base case
>          return n
>      return fib2(n - 2) + fib2(n - 1)  # recursive case
> 
> 
> if __name__ == "__main__":
>      print(fib2(5))
>      print(fib2(10))
> 
> =====
> 
> use a syntax that I have never seen on this list or in other publications.

About which line of code are you asking?

 > def fib2(n: int) -> int:

Please review: Type Hints:
https://docs.python.org/3/library/typing.html

 > if __name__ == "__main__":

https://docs.python.org/3/library/__main__.html
https://docs.python.org/3/reference/import.html

> My questions:
> 
> Is that new?

Typing: v3.5+ (IIRC)


> Is is 'recommended' to use this is the future?

Yes and no. The operative word is "Hints". Typing is not required by 
Python. However, you may find the extra error-checking helpful...


> I can only see a certain advantage of using this type of function 
> definition in resp. to the documentation, as it does not provide an 
> automatic check of the type of the argument(s) or of the result as in Java.

There are 'pros' and 'cons'!
-- 
Regards =dn


More information about the Python-list mailing list