#python #python-3.x
Вопрос:
Я использую общий локальный crud, поэтому я могу реализовать один и тот же метод для каждого отдельного списка, но при попытке добавить значение в список он не обновляет корневой список, но параметр, который он обновляет, какая-нибудь помощь?
def crud(name, lista):
print('----------------------------')
print(name.capitalize())
print('----------------------------')
print('t[1] . Ingresar')
print('t[2] . Consultar')
print('t[3] . Eliminar')
print('t[4] . Actualizar')
print('t[5] . Listar')
opcion = int(input('OPCIÓN >>> '))
if opcion == 1:
lista.append(input('Ingrese nombre del ' str(name[:-2]) ': '))
if opcion == 2:
node_id = int(input('Ingrese id del ' str(name[:-2]) ' a consultar: '))
elif opcion == 5:
i = 0
while i <= len(lista)-1:
print('t[' str(i) '] . ' str(lista[i]))
i = 1
while True:
print('----------------------------')
print('ALMACÉN MARKET-CICLE')
print('PROGRAMA PRINCIPAL')
print('----------------------------')
print('t[1] . Vendedores')
print('t[2] . Productos')
print('t[3] . Clientes')
print('t[4] . Ventas')
print('t[5] . SALIR')
opcion = int(input('OPCIÓN >>> '))
lista_vendedores = []
lista_productos = []
lista_clientes = []
if opcion == 1:
crud('vendedores', lista_vendedores)
if opcion == 2:
crud('productos', lista_productos)
if opcion == 3:
crud('clientes', lista_clientes)
elif opcion == 5:
break
Если я печатаю параметр «lista» при добавлении нового значения, он возвращает список с новым значением, но когда я ввожу опцию списка, список отображается пустым.
Комментарии:
1. Определите списки перед циклом….
Ответ №1:
Вы создаете новый пустой список на каждой итерации while True:
def func(items):
items.append(1)
print(items)
while True:
foobar = []
func(foobar)
всегда буду давать [1]
, а не [1]
, [1,1]
,….
Не запускайте вышеописанное, он будет просто занят, пока не взорвется.
Чтобы решить вашу проблему, вам нужно объявить список один раз, вне вашего интерактивного цикла.