是否有一種簡單的方法可以訪問IPython交互式命名空間中的變量。在實現具有緩慢加載命令的項目時,我想運行腳本將數據加載到交互式工作空間中,然後調用第二個使用數據的腳本,就像使用MATLAB一樣。從腳本中的IPython交互式命名空間訪問變量
在這個簡單的例子,我想要做的就是
In [20]: a=5
In [21]: run tst
其中tst.py只是
print a
的想法是,我想就這一次運行該腳本加載,然後在tst.py上工作。
謝謝!
是否有一種簡單的方法可以訪問IPython交互式命名空間中的變量。在實現具有緩慢加載命令的項目時,我想運行腳本將數據加載到交互式工作空間中,然後調用第二個使用數據的腳本,就像使用MATLAB一樣。從腳本中的IPython交互式命名空間訪問變量
在這個簡單的例子,我想要做的就是
In [20]: a=5
In [21]: run tst
其中tst.py只是
print a
的想法是,我想就這一次運行該腳本加載,然後在tst.py上工作。
謝謝!
有沒有簡單或聰明的方法來做到這一點。一種方法是在測試功能中使用main
函數,然後從您的環境中傳入globals
以更新調用者中的globals
。例如:
tst.py
def main(borrowed_globals):
globals().update(borrowed_globals)
print a
然後在IPython中:
In [1]: a = 5
In [2]: import tst
In [3]: tst.main(globals())
5
嘗試使用上的IPython的魔法運行命令-i選項;它使腳本使用當前的交互式命名空間運行,例如,與
load.py:
a = 5
tst.py:
print a
從IPython中我得到的;
In [1]: from load import *
In [2]: run -i tst
5
完美。謝謝! – user1398968