2016-07-15 14 views
1

Ich habe die folgende Funktion, ich möchte die 2 Strings concat, was falsch mache ich hier?Getting Nameerror in Python

commands = ["abcd","123"] 

def configure_dev(self, steps): 
    func_name = self.id + ':configure dev' 

    global conf_cmd 
    for key in commands: 
     conf_cmd += key + '\n' 
    print(conf_cmd) 

gibt es die folgende Fehlermeldung:

conf_cmd + = Taste + '\ n'

Nach dem Ausführen, bekomme ich diesen Fehler: NameError: name 'conf_cmd' is not defined

+3

Wo haben Sie 'conf_cmd' definiert? 'global' erstellt keine neue Variable. –

+1

Sie legen es als global fest, aber es ist nicht definiert. – Fallenreaper

+0

Danke das war dumm von mir. – Invictus

Antwort

1

Ich habe Ihren Code mit Ihrem kritischen Problem gelöst.

commands = ["abcd","123"] 
def configure_dev(self, steps): 
    func_name = self.id + ':configure dev' 
    global conf_cmd = '' // <-- '' 
    for key in commands: 
    conf_cmd+=key+'\n' 
    print(conf_cmd) 
+0

Beachten Sie, dass jeder Aufruf von 'configure_dev' die Zeichenfolge leeren wird. –

+0

wahr. Ich bin nicht sicher, was seine Erwartung war, aber unter der Erwartung seiner Kodierung plante er jedes Mal, wenn diese Funktion aufgerufen wurde, sie neu zu initialisieren. Oder zumindest habe ich das aus ihrem Code entnommen. – Fallenreaper

1

Alles, was Sie tun müssen, ist, hinzufügen: conf_cmd = ''

kurz nach commands = ["abcd","123"]

Warum? global conf_cmd Erstellt keine neue Zeichenfolge, es bedeutet nur, dass Sie auf die globale Variable zugreifen können.

Verwandte Themen