2013-03-09 5 views
0

Помогите, я пытаюсь сохранить все данные в моем файле в виде списка.Python Tkinter, сохраняющий список

register = [] 


def some_command(): 
    register.append([variable,'variable_x']) 

def save(): 
    outFile = open('Save.txt', 'wb') 
    pickle.dump(register, outFile) 
    outFile.close() 

Это сохраняет файл успешно. Но когда я использую «some_command» для добавления нового элемента в «register», он не обновляется; Это даже не приводит к ошибке. В чем может быть проблема?

+0

просто проверить это не проблема отступов, поэтому в самом источнике у вас есть register.append ... линия вкладок в? –

+0

Конечно: D Спасибо за сообщение, что исправлено. – madprogramer

+0

Можете ли вы дать более полный пример, показывающий, какая 'переменная', когда вы используете' some_command'? –

ответ

1

Он будет работать, если вы передадите регистр и переменную в some_command, но в противном случае вы не можете правильно отредактировать регистр внутри функции. Таким образом, это будет выглядеть примерно так:

def some_command(register, variable): 
    register.append([variable,'variable_x']) 

Это не строго необходимо пройти переменную, но это действительно помогает держать вещи аккуратно.

И очевидно, что вы могли бы назвать его

some_command(register, whatever you want) 
+0

Может не я: Защиту some_command(): глобальный регистр . .. вместо этого? – madprogramer

+0

Вы пробовали? Я знаю, что метод, который я использую, рекомендуется держать вещи аккуратными, когда проекты становятся большими (и люди просто вообще ненавидят глобальные), но если это сработает, это определенно будет лучшим исправлением, а также намного меньше –

+0

Пробовал, но это не работает. Проблема с вашим кодом заключается в том, что функция сохранения должна быть автоматической. Поэтому достаточно просто передать some_command(). – madprogramer

Смежные вопросы