Да, у меня есть несколько файлов org-babel, где я это делаю. Вот один из способов сделать это:
#+srcname: foo
#+begin_src python :exports code :tangle yes
def foo():
print "I'm foo()"
#+end_src
#+name: bar
#+begin_src python :exports code :tangle yes
def bar():
foo()
print "I'm bar()'"
#+end_src
#+srcname: main
#+begin_src python :exports code :tangle yes
foo()
bar()
#+end_src
Выход это файл, который выглядит следующим образом:
def foo():
print "I'm foo()"
def bar():
foo()
print "I'm bar()'"
foo()
bar()
Если код в файле орг находится в другом порядке, чем то, что вы хотите для создания, вы можете использовать тег noweb для создания файла кода в порядке, вы хотите, например, так:
#+name: bar
#+begin_src python :noweb-ref bar :tangle no
def bar():
foo()
print "I'm bar()'"
#+end_src
#+srcname: foo
#+begin_src python :noweb-ref foo :tangle no
def foo():
print "I'm foo()"
#+end_src
#+begin_src python :noweb tangle :tangle yes
<<foo>>
<<bar>>
foo()
bar()
#+end_src
выход запутывания это:
def foo():
print "I'm foo()"
def bar():
foo()
print "I'm bar()'"
foo()
bar()
Это ответ - я хочу создать новый блок кода, который принимает все блоки кода, которые я хочу оценить как: var arguments. Затем, когда я вызываю этот новый блок кода, все аргументы также оцениваются. Благодаря! – Conor
Да, вы можете объединить столько блоков, сколько хотите, делая это. – fniessen