Найти - Пользователи
Полная версия: Возврат значения из функции.
Начало » Python для новичков » Возврат значения из функции.
1
Divergent
Глупый глупый вопрос, но ступор какой-то…

Через Tkinter при нажатии кнопки выполняется функция. Результат этой функции мне нужен при нажатии другой кнопки.

Я похоже не совсем улавливаю как писать функции и как использовать результат…
Просьба книжки не отсылать читать… читал…не понял

При нажатии кнопки “Log” выбираю файл, а затем при нажатии кнопки “GO” используя ранее полученный файл ‘excel’ открыть его и т.д. и т.п.

Что-то не так пишу, так как при нажатии кнопки “GO” функция не получает нужные переменные - то есть ‘excel’

Мой код:
def Logs():
excel = str(tkFileDialog.askopenfilenames(multiple=1))
return excel
def GO(excel):
import xlrd
book = xlrd.open_workbook(excel)
...
...

from Tkinter import *
import tkFileDialog
root = Tk()
root.maxsize(800, 600)
root.minsize(400, 300)
root.title(u'BOOK')

but1 = Button(root,text=u'Log',width=10,height=2,bg='black',fg='red',font='arial 10')
but2 = Button(root,text=u'GO',width=10,height=2,bg='black',fg='red',font='arial 10')

but1.grid()
but2.grid()

but1.bind("<Button-1>",Logs)
but2.bind("<Button-1>",GO)

root.mainloop()
Evg
Объявите excel уровнем выше. Хотя возможно вернее будет сделать обе функции методами одного класса к примеру, и через общее свойство передавать.

excel = None
def Logs():
excel = str(tkFileDialog.askopenfilenames(multiple=1))
return excel
Должно сработать.

ps. все импорты делайте всегда в начале файла, а не внутри методов.
Divergent
Так не получилось.



Извращённо сделал… и получилось. Но хотелось бы понять…мне кажется что можно намного проще.

EXC =
def Logs():
excel = str(tkFileDialog.askopenfilenames(multiple=1))
EXC.append(excel)
return excel
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB