Поправьте меня, если я ошибаюсь ... тип намекает только на подсказку .... и это ничего не навязывает? - PullRequest
0 голосов
/ 07 октября 2019
def adding(a, b) -> int:
    return a+b
print(adding(1,0.7))

Как в этом коде ... Я получаю вывод 1.7 вместо ожидаемого 1..Так что это означает, что "преобразования типов" нет?

1 Ответ

0 голосов
/ 07 октября 2019

Да, вы правы, больше информации в https://docs.python.org/3/library/typing.html. Также, для определения типов вы можете использовать функцию type/1 и переписать пример как:

>>> def adding(a: int, b: int) -> int:
...   if(type(a) is int and type(b) is int):
...     return a + b
...   else:
...     print("Bad Arguments: Expected Integers")
... 
>>> adding(1, 0.7)
Bad Arguments: Expected Integers
>>> adding(1, 7)
8

Аннотация типа ->предоставил информацию о том - какого типа должна возвращать текущая функция. Аннотация типа : предоставила информацию о том, какие типы аргументов ожидаются в текущей функции. Надеюсь, это будет полезно

...