2016-06-04 14 views
1

Ich habe eine Python-Datei, in der ich meine Variablen deklariere und eine zweite Datei, die mehr Funktionen enthält (in diesem Beispiel nur eine Funktion). Ich kann nicht herausfinden, wie man die Variablen von one.py an two.py weitergibt.Wie man Variablen an verschiedene Skriptdateien weitergibt

one.py:

import two 
a=1 
b=2 
c=3 
dict={'ONE':a,'TWO':b,'THREE':c} 

two.py:

def f(): 
    d=a+b+c 
    return d 

two.f() sollte zurückgeben:

6 

Vielen Dank im Voraus

EDIT:

Es funktioniert in der Zwischenzeit in der Befehlszeile. Aber aus irgendeinem Grund möchte ich nicht arbeiten, wenn ich das Skript in Abaqus laufen lasse. Es sagt:

count=two.f(my_dictionary) 
AttributeError:'Module' object has no attribute 'f' 

Antwort

0

Erstellen Sie zuerst ein Modul, um "Import zwei" zu machen. - Erstellen Sie ein Verzeichnis und legen Sie eine leere init .py-Datei dort, two.py und one.py.

Ihre two.py sollte sein:

def f(x): 
    return x['ONE']+x['TWO']+x['Three'] 

Ihre one.py sein sollte:

import two 
a=1 
b=2 
c=3 
my_dictionary={'ONE':a,'TWO':b,'THREE':c} 
two.f(my_dictionary) 
+0

Dank bisher binayr. Aber ich scheine zu bekommen: TypeError: f() nimmt keine Argumente (1 gegeben). Kannst du mir helfen ... Ich bin kein Programmierer, ich bin sehr neu in Python – wasntme0804

+0

@ wasntme0804 Kopieren Sie das def f (x): genau wie ich hier geschrieben habe. Dieser Fehler ist, weil es keine Variable erwartet, wie Sie nicht definiert haben, aber es –

+0

übergeben Ich habe den Code genau so kopiert, wie Sie es haben. Ich habe einen Ordner, in dem enthalten sind: one.py, two.py, init.py (init ist eine leere Datei). Ich führe das Skript one.py aus. Sobald ich das Skript ausführe gibt es den obigen Fehler. Mein nächster Schritt wäre: two.f (my_dictionary). Was mache ich falsch? – wasntme0804