Форум сайта python.su
4
Привет!
Начал изучать возможности tkinter.
Появился такой вопрос:
я создаю кнопку “abc”и привязываю к ней функцию “fn1” при нажатии-
abc = tkinter.Button(tk,text=“123”, command= fn1)
тут всё понятно. Вопрос - как передать в функцию fn1 какие-нибудь параметры
ведь за название функции нет скобок, куда ж их вставлять?
Офлайн
73
abc = tkinter.Button(tk,text='123', command= lambda : fn1(arg))
Отредактировано marvellik (Июль 8, 2019 20:16:36)
Офлайн
4
С этим разобрался, спасибо.
Теперь не пойму - можно ли из этой функции вернуть значение с помощью return?
КУДА return вернёт это значение? ведь нет переменной которой присвоен вызов функции
Офлайн
73
а зачем вам это нужно в тк? функция должна что то выполнить, допустим получить два значения из полей ввода сложить их и вывести в другое поле. так зачем что то куда то возвращать? изменить какую то переменную? ну тогда ее делаете глобальной в функции и изменяете а лучше тогда писать класс тогда глобальные переменные вам будут не нужны.
Офлайн
4
да, хотел изменить переменную и пришлось делать её глобальной.
Но, как я понял из прочитанного, делать переменные глобальными “плохой приём”
Поэтому думал, что есть вариант получить результат с помощью return
Офлайн
14
лучшим способом будет юзать классы, внутри класса все что привязано к self глобально, но при этом за его пределами - нет.
class demo: var1 = 1 # это классовая переменная она привязана к self (не уверен что правильно обозвал) def __init__(self): self.var2 = 2 # это переменная привязанная к self ее видно из всего класса var3 = 3 # это локальная переменная метода, ее видно только внутри метода
Офлайн
221
@cckyi_boxxxкак раз таки она не привязана к self
это классовая переменная она привязана к self
Офлайн