2011-01-18 2 views
1

Im разработчик AS3, в настоящее время обучения PythonTyping Кастинг в Python Вопрос

В AS3 Id довольно часто делают это:

for (var foo in fooArray) { 
    trace(FooObject(foo).name); 
} 

Typing заливке объектов в массиве, так что я получаю код намекая в моя IDE

Как бы это сделать в Python?

+0

Не выглядит полным quesiton –

+3

Он новый и находится в процессе редактирования, что он и сделал. Проголосователям, пожалуйста, голосуйте до 0. –

ответ

0

Типы определяются во время выполнения в Python. Таким образом, как правило, меньше «подсказок кода» (я предполагаю, что вы имеете в виду завершение, навигация и т. Д.) В среде IDE. Еще есть.

Относительно: обычно используемая IDE для разработки Python с некоторым намеком Eclipse (или Aptana) с pydev. Некоторые installation instructions.

0

Ваш лучший выбор - использовать регистрацию. У Python есть модуль регистрации по умолчанию (с пятью строгими уровнями: debug, info, error и т. Д.), Но я предпочитаю свой собственный tagalog (который поддерживает n произвольные теги в сообщениях журнала).

С модулем регистрации питона:

import logging 

for foo in foo_list: 
    logging.log(type(foo)) 

С тагальского:

import tagalog 

for foo in foo_list: 
    tagalog.log(type(foo)) 

Любой из этих подходов будет писать записи в журнал. Место вывода для tagalog всегда является файлом, который указан в переменной «log_file_path» here. Расположение вывода для модуля регистрации Python (docs here) зависит от вашей конфигурации.

Для просмотра файла в режиме реального времени, сделать это в Linux/Unix/Mac терминал:

tail -f /path/to/file 
+1

Как это отвечает на вопрос OP о типе намекающего на его IDE? –

+0

Извините, а не ActionScript. Я исправил свой ответ, чтобы включить вызовы type(). –

+0

Спасибо, это очень полезно, но я думаю, что не задаю правильный вопрос. Моя IDE - PyDev, я привык к тому, что код намекает при перечислении массивов в Flex Builder по типу, который лишает объект в цикле my for. Возникает вопрос, могу ли я набирать текст, подобный этому, в PyDev. –

0

Фигурные это, сделка Python классы немного более разумно

В Actionscript

for (var f in itemArray) { 
    // call function in f 
    FooObject(f).doSomething() 
} 

В Python

for FooObject in itemArray: 
    # call function 
    FooObject.foo() 
1

Там нет типа литья в Python, так как типы являются динамическими , поэтому литье совершенно бессмысленно. Ваша IDE даст подсказки, если он сможет выяснить, какой тип он есть, чего он часто не может.