2016-07-15 3 views
1

У меня есть следующая функция, я хочу, чтобы concat 2 строки, Что я не делаю здесь?Получение nameerror в 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) 

Получение следующее сообщение об ошибке:

conf_cmd + клавиша = + '\ п'

После запуска, я получаю эту ошибку: NameError: name 'conf_cmd' is not defined

+3

Где вы определили 'conf_cmd'? 'global' не создает новую переменную. –

+1

вы установите его как глобальный, но он не определен. – Fallenreaper

+0

Спасибо, что было глупо от меня. – Invictus

ответ

1

Я добавил ваш код с вашей важной проблемой.

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

Имейте в виду, что каждый вызов 'configure_dev' будет пустым. –

+0

true. Я не уверен, что его ожидало, но в ожидании его кодирования, каждый раз, когда эта функция была вызвана, он планировал повторить ее инициализацию. Или, по крайней мере, это то, что я взял из своего кода. – Fallenreaper

1

Все, что вам нужно сделать, это добавить: conf_cmd = ''

сразу после commands = ["abcd","123"]

Почему? global conf_cmd Не создает новую строку, это просто означает, что вы можете получить доступ к глобальной переменной.