2017-06-26 2 views
-2

Ich versuche, ein Python-Skript-Variablen aus einem anderen Python-Skript in einem Python-Skript übergeben. Was ich versuche, in kodierter Form zu tun:Übergeben von Argumenten von einem Skript zum anderen, in einem Skript

file1.py

global x 
x = 7 

file2.py

print x 

file3.py

import file1 
import file2 

Aber ich bekomme immer die Fehler x ist nicht definiert. Wenn ich Datei1 in Datei2 importiere und sie ausführe, funktioniert sie, aber wenn ich Datei2 aus Datei3 laufe, funktioniert sie nicht.

Hilfe wäre sehr geschätzt :)

+0

Denken Sie nicht in Bezug auf die "globale Variablen", denken in expliziter Importe: 'von file1 Import x'. – deceze

+1

'Import' in Python unterscheidet sich sehr von' include' in PHP. Jedes Modul in Python hat seinen eigenen Namespace, und das Importieren eines Moduls mit 'import foo' fügt nur den Namen' foo' dem Namespace des importierenden Moudle hinzu. –

+0

@SiHa ja du hast Recht das hätte meine Frage beantwortet, ich habe es einfach nicht gefunden – Nils

Antwort

0

Sie müssen nicht global verwenden.

file1.py

x = 7 

file2.py

from file1 import x 

print(x) 

file3.py

... 

Aber wenn es mir war, ich würde vermuten, yo u wollen etwas wie folgt aus:

file1.py

def get_x(x): 
    return x 

file2.py

from file1 import get_x 

x = get_x(3) 

file3.py

from file2 import x 

print(x) 

Wie Sie sehen können, müssen Sie nur mit expliziten Importen spielen, abhängig davon, was Sie erreichen müssen. Allerdings sieht das komisch aus und ich kann es niemandem empfehlen, da entweder file1.py oder file2.py nutzlos scheint.

Hier ist die doc about imports

+0

Ja ich weiß, aber ich schrieb ein paar Skripte, die voneinander abhängen, aber im Falle eines Fehlers möchte ich ausführen können jeder Teil für sich. Aber danke für deine Hilfe :) – Nils

Verwandte Themen