Параметр chunk cache
не сохраняет все переменные, определенные в блоке, для языков, отличных от R
. Это, тем не менее, сохранение печатных выходов, поэтому, если вы вычисляете что-то, что требуется некоторое время, любые результаты не нужно переучитывать. С knitr
сайта:
engine='R'
За исключением (по умолчанию), все куски выполнены в виде отдельных сессий, так что переменные не могут быть непосредственно разделены. Если мы хотим использовать объекты, созданные в предыдущих кусках, мы обычно должны записать их в файлы (в качестве побочных эффектов). Для двигателя bash мы можем использовать Sys.setenv()
для экспорта переменных из R в bash (пример).
Можно сохранить несколько значений в среде оболочки и получить эти значения из других ячеек, прочитав среду. Это подход Yihui took in the Polyglot example. Итак, для Python, если вы можете отформатировать значение в виде строки и передать его в sys.setenv()
, вы можете использовать это значение в другой ячейке (выполняемой как отдельный сеанс Python), вызывая sys.getenv()
.
Хотя, я слегка запутался в отношении подхода, предпринятого с двигателями C
и Fortran
. Кажется, что у них есть доступ к скомпилированным функциям в более поздних фрагментах: using some function called .C()
или function called .Fortran()
. Но похоже, что у Python нет эквивалента.