Как вызвать функцию, которая принимает список, введенный пользователем, и затем назначать этот список глобальной переменной? - PullRequest
0 голосов
/ 26 февраля 2020

Допустим, у меня есть функция, которая принимает ввод строк и создает список (вот мой):

def listString():
stringInput = input('Please input a single line of strings\n')
if len(stringInput) < 20:
    print("Error. Your input needs to have at least 20 characters")
    print(inputStringList())
elif len(stringInput) >= 20:
    delimiter = ' '
    var2 = stringInput.split(delimiter)
    print(var2)

Как бы я go о создании глобальной переменной, которая хранит этот список так это можно передать в другие функции? Очевидно, мне нужно вызвать функцию (возможно, с параметром) и назначить ее переменной вне функции, но что-то настолько простое меня запутало.

1 Ответ

1 голос
/ 26 февраля 2020

Так что глобальные перемены - это плохая вещь, и вы должны избегать их, когда это возможно, но вы можете сделать это:

global_list = []


def list_string():  # leave camelCase for javascript -- we use snake_case in Python land.
    while True:
        string_input = input("Please input a single line of strings\n")
        if len(string_input) >= 20:
            break
        else:
            print("Error. Your input needs to have at least 20 characters")

    # string_input is now guaranteed to be a string of 20 characters or longer
    global global_list  # indicate that you're changing the global now
    global_list = string_input.split(' ')

Тем не менее, это плохая идея, и вы, вероятно, вообще не должны этого делать. Отладочный код, который управляет глобальным состоянием - helli sh. Инкапсулируйте эту логику c в объект и действуйте там.

...