在带有网状结构的R块中使用Python函数时出现意外输出
Python块:
await
R块:
def print_address(address):
py_address = r.address
print(py_address)
实际:
[[1]] NULL
[[2]] NULL
预期:
[[1]] [1]“大街1号”
[[2]] [1]“希望街2号”
答案 0 :(得分:1)
这有两部分:
1)预计将打印python函数。但是不会显示python console的输出。这看起来像是一个典型的冲洗问题。 https://github.com/rstudio/rstudio/issues/3271 因此,如果我们在Python中刷新标准输出,则会打印地址。
import sys
def print_address(address):
py_address = address
print(py_address)
sys.stdout.flush()
2)我们的python函数不返回value。我不太确定这是如何工作的,但是在这种情况下,python似乎向R返回了null
。如果我们直接调用函数,而在lapply
中,这似乎不是问题。返回的null被添加到列表中并隐式地被打印。即使您在python中使用stdout.flush
,也会打印此内容。