Как я вызываю код Python от Ruby?

вам нужно вставить эту кнопку «загрузить больше» с пользовательской BaseExpandableAdapter. этот ответ выглядит связанным, потому что он показывает, как обеспечить два разных типа дочерних представлений. хитрость заключается в том, что когда нажата кнопка «загрузить больше», ее необходимо удалить, затем необходимо прикрепить новые элементы вместе с новой кнопкой «загрузить больше» внизу, а затем дочерний адаптер должен быть уведомлен. он должен вести себя подобно элементу виртуального списка, где getChildView() предоставляет текущий childPosition.

только что видел предоставленный код; с Volley вам, скорее всего, нужно будет получить на одну единицу меньше при первой загрузке, чтобы адаптер не синхронизировался из-за добавления одного дополнительного виртуального элемента - или, по крайней мере, добавьте его с видом 2 в конце сетевого запроса, прежде чем добавить его в адаптер. другой вариант мог бы позволить getChildCount() вернуть на единицу меньше; Об этом дополнительном пункте в каждом случае нужно заботиться при поиске.

5
задан Fabio Vinicius Binder 7 May 2009 в 22:14
поделиться

3 ответа

Я не думаю, что есть способ вызвать Python из Ruby без разветвления процесса через system () или что-то в этом роде. Время выполнения языка сильно различается, в любом случае они должны быть в разных процессах.

2
ответ дан 18 December 2019 в 14:51
поделиться

Для запуска кода Python интерпретатор должен быть запущен как процесс. Поэтому system () - ваш лучший вариант.

Для вызова кода Python вы можете использовать RPC или сетевые сокеты, полученные для самой простой вещи, которая может работать.

-1
ответ дан 18 December 2019 в 14:51
поделиться

Вы можете попробовать библиотеку Масаки Фукусимы для встраивания python в ruby, хотя она, похоже, не поддерживается. YMMV

С помощью этой библиотеки скрипты Ruby могут напрямую вызывать произвольные модули Python. Могут использоваться как модули расширения, так и модули, написанные на Python.

Забавно названный Нечестивый из гениальной книги «Почему удачливый жесткость» также может оказаться полезным:

Скомпилировать байт-код Ruby в Python.
И, кроме того, переведите это
байт-код обратно в исходный код Python using Decompyle (included.)

Requires Ruby 1.9 and Python 2.5.

6
ответ дан 18 December 2019 в 14:51
поделиться