Использование имен строк в разных функциях

Мне нужно использовать movies_list из первой функции во второй. Как мне это сделать?

 def movie(): movies_list = [movie.strip() for movie in movies_list] movie_explorer() def rand(): rand_item = print(random.choice(movies_list)) 

  • str в python
  • Python записывает в CSV строку за строкой
  • Строка байтов Python неправильно печатает в словаре
  • Как найти первый индекс любого из набора символов в строке
  • Python реверсирует строку с помощью рекурсии
  • Разделение букв из чисел внутри строки
  • Как проверить, является ли str (переменная) пустым или нет?
  • Объединение элементов кортежа в списке в python
  • Не удается объединить объекты 'str' и 'float'?
  • Получите субдомен от URL-адреса с помощью Python
  • Python записывает в CSV строку за строкой
  • Python создает таблицу в переменной из файла csv
  • 3 Solutions collect form web for “Использование имен строк в разных функциях”

    Добро

    Использовать return и аргументы

     def movie(): movies_list = [movie.strip() for movie in movies_list] movie_explorer() return movies_list def rand(movies_list): rand_item = print(random.choice(movies_list)) 

    И при вызове rand забудьте вызвать функцию как

     rand(movie()) 

    Плохо

    Добавить строку

     global movies_list 

    как первая строка в обеих функциях

    И уродливый

    Вы можете использовать доступный объект globals . (Добавив его здесь, чтобы закончить рифму)

     def movie(): global movie_returns movie_returns = [movie.strip() for movie in movies_list] movie_explorer() # No return def rand(): # No argument movies_list = next((globals()[v] for v in globals() if v=='movies_return')) rand_item = random.choice(movies_list) 

    Сделайте вторую функцию вложенной в первую, здесь у вас есть пример:

     def hello(): a = "hello" def world(): return "%s world" % a return world() print hello() 

    поместите две функции в класс и сделайте movie_list переменной класса.

    Python - лучший язык программирования в мире.