2012-05-16 11 views
15

में आईपीथॉन इंटरैक्टिव नेमस्पेस से चर का उपयोग करना आईपीथॉन इंटरैक्टिव नेमस्पेस में चरों तक पहुंचने का कोई आसान तरीका है। एक धीमी लोड कमांड वाली प्रोजेक्ट को लागू करते समय, मैं डेटा को इंटरैक्टिव वर्क स्पेस में लोड करने के लिए एक स्क्रिप्ट चलाने के लिए चाहता हूं, फिर डेटा का उपयोग करने वाली दूसरी स्क्रिप्ट को कॉल करें, जैसे MATLAB के साथ संभव है।स्क्रिप्ट

इस सरल मामले में, मुझे क्या करना चाहते हैं

In [20]: a=5 

In [21]: run tst 

जहां tst.py है सिर्फ

print a 

विचार यह है कि मैं एक बार सिर्फ लोड हो रहा है स्क्रिप्ट चलाने के लिए है, तो चाहते हैं tst.py पर काम करें

धन्यवाद!

उत्तर

2

ऐसा करने का कोई आसान या स्मार्ट तरीका नहीं है। एक तरीका आपके परीक्षण फ़ंक्शन में 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 
20

IPython का जादू रन आदेश पर मैं विकल्प का उपयोग करने का प्रयास करें; यह वर्तमान इंटरैक्टिव नेमस्पेस का उपयोग कर स्क्रिप्ट चलाता है, उदा।

साथ

load.py:

a = 5 

tst.py:

print a 
IPython से

मैं;

In [1]: from load import * 

In [2]: run -i tst 
5 
+0

बिल्कुल सही। धन्यवाद! – user1398968