как определить список глобально в python - PullRequest
0 голосов
/ 09 апреля 2020

Кажется, мне нужно дважды определить эту глобальную переменную в моем коде, чтобы удалить ошибки, которые не могут быть правильными. Код просто просит ввести объект и добавляет его в новый список. Если пользователь хочет пропустить этот шаг, он может разрешить новому списку = старому списку, созданному ранее в коде.

Я должен где-то ошибиться в синтаксисе, но не могу понять, где. Мой код ниже, благодарен за любую помощь, спасибо.

global new_object_list


def get_input_object(prompt):

        global new_object_list
    # new_object_list is defined without usage
        new_object_list = []

        while True:
            chosen_object = input(prompt)
            if chosen_object in my_list:
                new_object_list.append(chosen_object)
                # allows user to break out of loop on carriage return
            if chosen_object == '\r':
                break
                # allows user to let new list = copy of old list then exit input
            if chosen_object == 'all':
                new_object_list = my_list.copy()
                break
                # return outside of function
        return chosen_object


print(get_input_object('Enter entities separated by space'))
print(new_object_list)

1 Ответ

0 голосов
/ 09 апреля 2020

Определите список в глобальной области видимости, чтобы вашей функции не приходилось решать, нужно ли ей сначала создавать список.

new_object_list = []


def get_input_object(prompt):

        global new_object_list

        while True:
            chosen_object = input(prompt)
            if chosen_object in my_list:
                new_object_list.append(chosen_object)
                # allows user to break out of loop on carriage return
            if chosen_object == '\r':
                break
                # allows user to let new list = copy of old list then exit input
            if chosen_object == 'all':
                new_object_list = my_list.copy()
                break
                # return outside of function
        return chosen_object
...