Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как понять тип переменных? 
:(
    Опции темы
mrgloom
Дата 22.5.2012, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



допустим есть у меня функция, вроде бы address строка, а port число, но я не уверен,  а тип переменных нигде не указан.
как возможно определить?
Код
 
def Connect(self, address, port):


Это сообщение отредактировал(а) mrgloom - 22.5.2012, 12:48
PM MAIL   Вверх
kemiisto
Дата 22.5.2012, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Цитата(mrgloom @  22.5.2012,  11:48 Найти цитируемый пост)
допустим есть у меня функция

Что значит "есть у меня"? Если функция написана не Вами - смотреть документацию, комментарии к коду, если пишете сами - пишите комментарии, документацию. Ещё можно аргументы функций снабжать аннотациями типов, ЕМНИП.

Добавлено через 3 минуты и 26 секунд
Цитата(kemiisto @  22.5.2012,  11:52 Найти цитируемый пост)
Ещё можно аргументы функций снабжать аннотациями типов, ЕМНИП.

Только в Python 3.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
mrgloom
Дата 22.5.2012, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



написана не мной, документации нет.

а в питоне число может трактоваться как стока и наоборот?

PM MAIL   Вверх
kemiisto
Дата 22.5.2012, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Цитата(mrgloom @  22.5.2012,  13:11 Найти цитируемый пост)
а в питоне число может трактоваться как стока и наоборот?

Если я правильно понял, то нет. Типизация строгая.

Цитата(mrgloom @  22.5.2012,  13:11 Найти цитируемый пост)
написана не мной, документации нет.

Ну, тогда никак. В Python объекты имеют тип, а вот переменные (которые суть есть ссылки на объекты) - нетипизированы.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Stolzen
Дата 22.5.2012, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 1
Всего: 48





--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
kemiisto
Дата 22.5.2012, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Stolzen, это не то. Ещё раз - можно определить тип объекта (во время исполнения), но нельзя определить, объект какого типа необходимо передать в функции в качестве её аргументов, если не использовались аннотации или комментарии к коду.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Stolzen
Дата 22.5.2012, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 1
Всего: 48



Ну так да, а что вы хотели от динамически типизированного языка? smile 


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
mrgloom
Дата 23.5.2012, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



ну может все таки по коду как то можно определить?
все таки там исользуются какие то стандартные функции из питона, или там тоже может быть некая неопределенность.

дело в том что я из с++ вызываю функции из питона и мне надо знать что у них на входе и на выходе.
PM MAIL   Вверх
mrgloom
Дата 23.5.2012, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



выглядит все примерно так

Код

PyObject* pArgs = Py_BuildValue("(ss)","127.0.0.1","8000");
//или так 
PyObject* pArgs = Py_BuildValue("(si)","127.0.0.1",8000);

call_python_func("my_test","Connect",pArgs);

PM MAIL   Вверх
Void
Дата 23.5.2012, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 10
Всего: 173



Как уже не раз повторили, только инспекцией кода или методом проб и ошибок.
В данном конкретном случае ожидать строку на месте аргумента с номером порта мог только очень «одарённый» Python-программист.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Karadul
Дата 24.5.2012, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Чтобы прога не падала, стоит добавить проверку на возвращаемый тип и кидать исключение.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0790 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.