id_666i
@id_666i

Как передать переменную из одной функции в другую?

Всем привет, я никак не могу понять как передать переменную entryFileName из функции init_twoWind в функцию makeFile
(Знаю что нубовопрос, но я никак не могу понять как это сделать, уже читал похожие ответы)

class twoWind(tk.Toplevel):
    def __init__(self):
        super().__init__(root) 
        self.init_twoWind()
    def makeFile(self):
        print(self.entryFileName)
    def init_twoWind(self): 
        self.title("Make file")  
        self.geometry("300x200+470+220")
        self.resizable(False, False)

        fileName = tk.Label(self, text='File name')    
        fileName.place(x=30, y=50) 

        self.entryFileName = ttk.Entry(self)
        self.entryFileName.place(x=120, y=50)

        btn_mkFile = tk.Button(self, text='Create')
        btn_mkFile.place(x=110, y=130)
        btn_mkFile.bind("<Button-1>", twoWind.makeFile)

        btn_cancle = tk.Button(self, text='Cancle', command=self.destroy)
        btn_cancle.place(x=190, y=130)

        self.grab_set() 
        self.focus_set()
  • Вопрос задан
  • 410 просмотров
Пригласить эксперта
Ответы на вопрос 2
Telsir
@Telsir
select * from /dev/null
Используй декоратор @property
Ответ написан
Комментировать
@bbkmzzzz
так, а в чем вопрос?
self.entryFileName определена как атрибут объекта. Разве что ее не существует, пока не вызван метод init_twoWind(self)
если попытаетесь вызвать def makeFile(self) ДО вызова init_twoWind(self) - получите ошибку NameError.
Все атрибуты объекта лучше инициализировать в __init__, он для того и нужен.

Почитайте про классы поподробнее, можно тут.
Для передачи чего-либо в функцию/метод нужно определить аргументы, которые принимает такая функция/метод.
def foo(x):  #  функция ждет один аргумент, который внутри функции будет под именем x
    print(x)
foo(10)
foo() #  TypeError: foo() missing 1 required positional argument: 'x'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект