emacs org-babel 结果意外输出
emacs org-babel results unexpected output
我将 emacs 25.2.1 与 spacemacs 和 scimax 一起使用,并尝试创建一个类似 jupyter 的笔记本。经过一些试验,我对从最终 src 块的 :results output
标签得到的输出感到困惑:
#+name: OOP
#+BEGIN_SRC elisp :results silent :session OOP
(pyvenv-activate "~/Desktop/py2_venv")
#+END_SRC
#+BEGIN_SRC ipython :session OOP :results silent
class Dog():
def __init__(self, breed, name, spots):
self.breed = breed
self.name = name
#expect boolean true/false
self.spots = spots
#+END_SRC
#+BEGIN_SRC ipython :session OOP :results output
my_dog = Dog(breed='lab', name='Sammy', spots='False')
print(type(my_dog))
print(my_dog.breed)
my_dog.name
my_dog.spots
#+END_SRC
#+RESULTS:
**:RESULTS:
# Out[23]:
# output
<class '__main__.Dog'>
lab
# text/plain
: 'False'**
:END:
据我了解,所有输出都应在 session
模式下使用 output
选项显示。此外,我不需要使用 print()
。我很困惑为什么 my_dog.name
从输出中丢失,但 my_dog.spots
却没有。知道我遗漏了什么吗?
:results output
返回标准输入,这将是打印输出。
如果您使用 :results value
或 :results value raw
,您将收到最后的评估,而不是副作用:
#+BEGIN_SRC ipython :session OOP :results value
my_dog = Dog(breed='lab', name='Sammy', spots='False')
print(type(my_dog))
print(my_dog.breed)
my_dog.name
my_dog.spots
#+END_SRC
为了获得这两项评估,您需要输入更多内容 python。
看看:
https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-python.html
还有 Emacs SE 中的以下答案:
https://emacs.stackexchange.com/a/45121/17548
我将 emacs 25.2.1 与 spacemacs 和 scimax 一起使用,并尝试创建一个类似 jupyter 的笔记本。经过一些试验,我对从最终 src 块的 :results output
标签得到的输出感到困惑:
#+name: OOP
#+BEGIN_SRC elisp :results silent :session OOP
(pyvenv-activate "~/Desktop/py2_venv")
#+END_SRC
#+BEGIN_SRC ipython :session OOP :results silent
class Dog():
def __init__(self, breed, name, spots):
self.breed = breed
self.name = name
#expect boolean true/false
self.spots = spots
#+END_SRC
#+BEGIN_SRC ipython :session OOP :results output
my_dog = Dog(breed='lab', name='Sammy', spots='False')
print(type(my_dog))
print(my_dog.breed)
my_dog.name
my_dog.spots
#+END_SRC
#+RESULTS:
**:RESULTS:
# Out[23]:
# output
<class '__main__.Dog'>
lab
# text/plain
: 'False'**
:END:
据我了解,所有输出都应在 session
模式下使用 output
选项显示。此外,我不需要使用 print()
。我很困惑为什么 my_dog.name
从输出中丢失,但 my_dog.spots
却没有。知道我遗漏了什么吗?
:results output
返回标准输入,这将是打印输出。
如果您使用 :results value
或 :results value raw
,您将收到最后的评估,而不是副作用:
#+BEGIN_SRC ipython :session OOP :results value
my_dog = Dog(breed='lab', name='Sammy', spots='False')
print(type(my_dog))
print(my_dog.breed)
my_dog.name
my_dog.spots
#+END_SRC
为了获得这两项评估,您需要输入更多内容 python。
看看:
https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-python.html
还有 Emacs SE 中的以下答案: https://emacs.stackexchange.com/a/45121/17548