Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 26, 2016 22:19:24

psb60984
Зарегистрирован: 2015-09-05
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

type hinting (PEP 0484) программа все равно работает

Python 3.5.1 x64

Я ожидаю, что такое не будет работать

def test(my_int: int) -> str:
    return str(my_int)
if __name__ == '__main__':
    test('my_int')

Однако оно работает
Хочу что бы хотя бы при несовпадении типов формальных и фактических аргументов функции программа крашилась.
Нашел декоратор Это единственный способ?

Офлайн

#2 Янв. 26, 2016 23:06:19

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

type hinting (PEP 0484) программа все равно работает

а оно и не должно крашится. Это всего лишь подсказка по типам для программистов, IDE, check утилитам и тп.
Питон язык с динамической типизацией, и ломать ее никто не будет.
Например в вашем случае - что если передать в качестве my_int объект, который ведет себя как int ? Что должна сделать программа? Упасть потому что это явно не int, или работать потому что объект реализует все возможности int ? Это так, вопрос на подумать, в сообществе разработчиков ядра Python это даавно решили.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version