У меня есть программа, которая загружает видеофайлы. Здесь она полностью, не беспокойтесь о ее короткой программе.Использовать переменную из одной функции в другой функции с помощью Python
import pafy
def download():
url = raw_input('Please enter the path to the video\n')
video = pafy.new(url)
vid_title = video.title
best = video.getbest()
streams = video.streams
print(vid_title)
for stream in streams:
print(stream)
print'Resolution: ',best.resolution,'\nExtension : ', best.extension
user_choice = raw_input("Do you want to download this video\ny or n\n")
if user_choice == 'y':
print'Your video will downloaded soon'
filename = best.download(filepath = '/home/mark/new_projects')
another_download()
elif user_choice =='n':
print'You have chosen not to download a video'
another_download()
def another_download():
another_choice = raw_input('Would you like to download another video\ny or n\n')
if another_choice == 'y':
download()
else:
print'Thank for using my program'
download()
Я хотел бы разбить его на более мелкие функции. Я попытался сделать это:
def url():
url = raw_input('Please enter the path to the video\n')
video = pafy.new(url)
vid_title = video.title
best = video.getbest()
streams = video.streams
print(vid_title)
for stream in streams:
print(stream)
print'Resolution: ',best.resolution,'\nExtension : ', best.extension
def download():
user_choice = raw_input("Do you want to download this video\ny or n\n")
if user_choice == 'y':
print'Your video will downloaded soon'
filename = best.download(filepath = '/home/mark/new_projects')
another_download()
elif user_choice =='n':
print'You have chosen not to download a video'
another_download()
Но когда я пытаюсь это сделать, я получаю сообщение об ошибке, в котором говорится, что лучшее не было объявлено. Я не хочу объявлять лучше всего как глобальную переменную. Есть ли способ использовать переменную из одной функции внутри другой функции?
Можете ли вы показать свой порядок разрешения метода? Я имею в виду, откуда вызывается 'download()' и когда, то же самое о 'url()'. Просто укажите полную программу во втором примере. – light2yellow
И да, есть способ использовать одну переменную из одной функции внутри другой функции. Используйте параметр * *. – light2yellow
@ light2yellow Спасибо, я попытался использовать параметр, но я не делал это правильно, поэтому я пришел сюда. Я назвал оба url() и загрузил в конце файла –