2016-08-02 12 views
0

Ich versuche, Funktion mit Wert aus einer anderen Datei als Variable auszuführen.Funktion mit Variable aus importierter Datei ausführen

eine Datei (sie text.py nehmen) mit:

VAR="abc" 

In Hauptdatei:

variable1 -> that variable contain value "VAR" 
import text 

Funktion ausführen:

example_function(connect=text.variable1) 

Warum kann ich es nicht auf diese Weise tun ?

EDIT:

echten Code:

variable = "VAR_23_23" 
import text 
from functionfile import number_function 
from functionfile import find_number 
number_to_substr=find_number(variable,"_",1) 
source_var=variable[:number_to_substr] 
number_function(connect=text.source_var) 

bearbeiten 2.

text.py enthalten:

VAR="abc" 

main.my enthalten:

import text 

    variable = "VAR_23_23"   
    from functionfile import number_function 
    from functionfile import find_number 

    number_to_substr=find_number(variable,"_",1) -> the result is "4" 
    source_var=variable[:number_to_substr] -> the result is "VAR" 
    number_function(connect=text.source_var) -> now trying to execute function with that variable name but as result I expect value from TEXT.py file. 

Denn jetzt statt ‚abc‘ Wert I ‚VAR‘ bekam value.`

+2

Das ist nicht wirklich klar. Funktioniert 'text.VAR' nicht, um den Wert von' VAR' aus 'text.py' zu erhalten (nach dem Import)? – Aurora0001

+2

Bitte posten Sie echte Code-Schnipsel, die den Code zeigen. –

+0

'variable1' ist innerhalb des aktuellen Moduls von' main' definiert, so dass 'text.variable1' insgesamt nicht korrekt ist –

Antwort

1

Sie nicht text.variable1 tun können, weil variable1 in Ihrer Haupt-Datei befindet.

Sie entweder den Wert der importierten Datei verwenden können:

import text 
example_function(connect=text.VAR) 

Oder nutzen Sie den Wert in variable1:

example_function(connect=variable1) 

Wenn das, was Sie versuchen zu tun ist, wie ich geschrieben habe in meinem Kommentar dann das ist, was Sie ändern sollten, um es funktionieren zu lassen:

Bearbeiten Sie zunächst die text.py Datei, so dass anstelle einer Instanziierung von a Variable mit dem Namen VAR, es enthält eine Instanziierung eines Wörterbuchs einen "VAR" Schlüssel enthält:

d = {'VAR': "abc"} 

Nun, um den Wert von 'VAR' in der Hauptdatei zugreifen zu können, tun text.d[source_var]. Das heißt,

number_function(connect=text.d[source_var]) 

Dies wird unter der Annahme, dass die source_var Variable die Zeichenfolge "VAR" enthält.

+0

Hallo, danke für deine Antwort. Ich habe meine Frage bearbeitet. Bitte schauen Sie, was genau ich meinte – maciek2791

+0

Für jetzt ist "Variable" statisch, aber ich möchte es als Eingangsvariable machen. – maciek2791

+0

ist die Sache, dass ich statischen Wert nicht verwenden kann, wie Sie erwähnten: (connect = text.VAR). -> Kann "VAR" hier nicht statisch setzen. nur als Variable .. Unfornatelly Ihre zweite Lösung funktioniert nicht richtig: ( – maciek2791