2017-06-07 2 views
0

Von einem Jupyter Notebook möchte ich eine Funktion in einer anderen .ipynb Datei geschrieben aufrufen. Die Teilantwort ist in diesem Thread Reusing code from different IPython notebooks von drevicko gegeben. Als Beispiel verwende ich plus_one Funktion in plus_one.ipynb geschrieben:Rufen Sie eine Funktion in verschiedenen Datei von Jupyter Notebook geschrieben

def plus_one(x): 
    print(x + 1) 

Dann in meinem aktuellen Notebook, führe ich die Zelle:

%run plus_one.ipynb 3 

die mir keinen Ausgang gibt. Meine erwartete Ausgabe ist 4. Wie übergebe ich ein Argument (3) an dieses Skript? Vielen Dank!

Antwort

0

Von der %run? Dokumentation

Dies ist ähnlich bei einer Systemaufforderung läuft python file args, aber mit dem Vorteil, den Sie IPython die Tracebacks geben, und von Laden alle Variablen in Ihrem interaktiven Namensraum für die weitere Verwendung

Also werden alle Zellen von plus_one.ipynb ausgeführt und alle Variablen werden dem Namensraum des aufrufenden Notebooks hinzugefügt. Dies ruft die Methode plus_one nicht direkt auf (es sei denn, es wird in dem anderen Notebook aufgerufen), aber es definiert es im aktuellen Namespace, wie eine import in einem regulären Python-Skript.so von diesem Moment an sollten Sie in der Lage sein zu tun plus_one(3) im aufrufenden Notebook, und 4 als Rückgabewert

+0

Bingo erwarten! Es funktioniert wie beschrieben. Danke vielmals! (Entschuldigung, habe nicht genug Ansehen, um deine Antwort zu verbessern ...) – koch