возникают проблемы при передаче переменной из одной функции в другую в python - PullRequest
0 голосов
/ 10 апреля 2020

Я хотел передать одну переменную, которую я создал в одной функции, в другую функцию, чтобы распечатать ее и что-то с ней делать, однако у меня возникают проблемы при попытке передать переменную, которую я сделал в первой функции, во вторую. function

courses = [{k: json_dict[k] for k in keep_keys}
                    for json_dict in specific_major]
return courses


Переменная курсов, которая находится выше, - это то, что я хочу использовать в своей следующей функции. Я попытался вернуть его, а затем создать новую функцию и передать ее как функцию.

def classes_get(c):
    print(c)

classes_get(courses)

Я попробовал следующий код выше в блокноте jupyter, чтобы посмотреть, будет ли он распечатан, но я всегда получаю это сообщение " курсы не определены ", хотя я запускаю все блоки кода по порядку, а переменная курса печатается нормально, когда я вызываю первую функцию, в которой она находится. Есть ли пропущенный мной шаг, который не позволяет мне использовать его в другой функции ?

def get_departments():
    umd_departments = requests.get("https://api.umd.io/v0/courses/departments")
    umd_departments_list = umd_departments.json()

    umd_departments_list2 = json.dumps(umd_departments_list, indent=1)
    department_storage = [department['dept_id'] for department in umd_departments_list]
    print(department_storage)
    dept = input('what department are you  in right now: ')
    dept = dept.upper()
    if dept not in department_storage:
        raise ValueError("department doesn't exist")
    else:
        department_url = requests.get(f"https://api.umd.io/v0/courses?dept_id={dept}")
        specific_major =department_url.json()
        keep_keys = ["course_id", "name", "credits", "sections"]                        
        courses = [{k: json_dict[k] for k in keep_keys}
                    for json_dict in specific_major]

        return courses


edit: get_departments является первой функцией. извините, что не включил все это

другое редактирование: это то, что я пытался до сих пор

courses = get_departments()
def get_classes(courses):
    print(courses)
get_classes(courses)

1 Ответ

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

Используйте возвращаемое значение из первой функции и передайте его другой функции. Если вы используете ноутбук Jupyter, убедитесь, что функция get_department определена / запущена перед вызовом classes_get.

courses = get_departments()
classes_get(courses)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...