Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Python: Общие вопросы > как понять тип переменных? |
Автор: mrgloom 22.5.2012, 12:48 | ||
допустим есть у меня функция, вроде бы address строка, а port число, но я не уверен, а тип переменных нигде не указан. как возможно определить?
|
Автор: kemiisto 22.5.2012, 12:52 |
Что значит "есть у меня"? Если функция написана не Вами - смотреть документацию, комментарии к коду, если пишете сами - пишите комментарии, документацию. Ещё можно аргументы функций снабжать аннотациями типов, ЕМНИП. Добавлено через 3 минуты и 26 секунд http://www.python.org/dev/peps/pep-3107/. |
Автор: mrgloom 22.5.2012, 14:11 |
написана не мной, документации нет. а в питоне число может трактоваться как стока и наоборот? |
Автор: kemiisto 22.5.2012, 15:00 |
Если я правильно понял, то нет. Типизация строгая. Ну, тогда никак. В Python объекты имеют тип, а вот переменные (которые суть есть ссылки на объекты) - нетипизированы. |
Автор: Stolzen 22.5.2012, 17:43 |
http://stackoverflow.com/questions/1549801/differences-between-isinstance-and-type-in-python |
Автор: kemiisto 22.5.2012, 18:35 |
Stolzen, это не то. Ещё раз - можно определить тип объекта (во время исполнения), но нельзя определить, объект какого типа необходимо передать в функции в качестве её аргументов, если не использовались аннотации или комментарии к коду. |
Автор: Stolzen 22.5.2012, 22:15 |
Ну так да, а что вы хотели от динамически типизированного языка? ![]() |
Автор: mrgloom 23.5.2012, 12:42 |
ну может все таки по коду как то можно определить? все таки там исользуются какие то стандартные функции из питона, или там тоже может быть некая неопределенность. дело в том что я из с++ вызываю функции из питона и мне надо знать что у них на входе и на выходе. |
Автор: mrgloom 23.5.2012, 13:42 | ||
выглядит все примерно так
|
Автор: Void 23.5.2012, 14:44 |
Как уже не раз повторили, только инспекцией кода или методом проб и ошибок. В данном конкретном случае ожидать строку на месте аргумента с номером порта мог только очень «одарённый» Python-программист. |
Автор: Karadul 24.5.2012, 18:20 |
Чтобы прога не падала, стоит добавить проверку на возвращаемый тип и кидать исключение. |