#python #kivy #kivymd
Вопрос:
Я пытался составить список из своей базы данных sqlite . Список можно добавлять в режиме реального времени . Все работало нормально, пока я не добавил заявление «если», чтобы добавить больше элементов списка в режиме реального времени . Если моя база данных уже заполнена , код отлично работает даже с утверждением «если», но если в моей базе данных нет значений , возникает следующая ошибка
local variable 'name' referenced before assignment
вот код
def on_start(self):
list_item = ObjectProperty
list_item = []
self.connection = sqlite3.connect('friend_list.db')
self.cursor = self.connection.cursor()
self.cursor.execute("""SELECT * FROM friend_list ;""")
self.connection.row_factory = lambda cursor, row: row[0]
friends = self.connection.execute('SELECT name FROM friend_list').fetchall()
for name in friends:
print(name)
button = OneLineAvatarIconListItem(text = name,on_press=lambda widget:self.change_screen("Chat_Screen"))
self.root.ids["Chat_List"].ids["list"].add_widget(button)
button.bind(on_press=self.press)
list_item.append(name)
if name not in list_item: #this is the condition which is causing error
a = list_item[-1]
button = OneLineAvatarIconListItem(text = (a),on_press=lambda widget:self.change_screen("Chat_Screen"))
button.bind(on_press=self.press)
self.root.ids["Chat_List"].ids["list"].add_widget(button)
button.bind(on_press=self.press)
print(list_item)
Ответ №1:
def on_start(self):
list_item = ObjectProperty
list_item = []
self.connection = sqlite3.connect('friend_list.db')
self.cursor = self.connection.cursor()
self.cursor.execute("""SELECT * FROM friend_list ;""")
self.connection.row_factory = lambda cursor, row: row[0]
friends = self.connection.execute('SELECT name FROM friend_list').fetchall()
for name in friends:
print(name)
button = OneLineAvatarIconListItem(text = name,on_press=lambda widget:self.change_screen("Chat_Screen"))
self.root.ids["Chat_List"].ids["list"].add_widget(button)
button.bind(on_press=self.press)
list_item.append(name)
if name not in list_item: #this is the condition which is causing error
a = list_item[-1]
button = OneLineAvatarIconListItem(text = (a),on_press=lambda widget:self.change_screen("Chat_Screen"))
button.bind(on_press=self.press)
self.root.ids["Chat_List"].ids["list"].add_widget(button)
button.bind(on_press=self.press)
print(list_item)
Отсутствует отступ в условии if.