jupyter запускает magic pass аргументы в записную книжку

#python #jupyter-notebook

#python #jupyter-notebook

Вопрос:

Когда вы находитесь в первой записной книжке jupyter (first.ipynb), вы можете выполнить вторую, но как можно передать аргументы?

Предполагая, что второй имеет следующее содержимое:

 xx = 10
  

Вы можете вызвать второй из первого, например:

 %run second.ipynb
xx # will print 10 (= nicely set up from the second one)
  

Но как я могу передать параметр во вторую записную книжку / в run magic?
Т.Е..

 %run second.ipynb foo=20
  

И затем:

 if foo is not None:

    xx = foo
  

во втором?

Этот наивный подход терпит неудачу с:

 NameError: name 'foo' is not defined
  

т. е. параметр не передается.

Ответ №1:

Поскольку он выполняется в том же процессе, я могу просто определить аргументы как переменные в первой записной книжке.

Это кажется грязным, но удобно.