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

К примеру. У меня есть файл test.py с данным кодом.

from test1 import Func
from tkinter import *

root = Tk()

ent = Entry()
but = Button(text='YES', command=Func())


ent.grid()
but.grid()

root.mainloop()

И второй файл с функцией - test1.py

def Func():
    text = ent.get()
    print(text)

при запуске программы выводит ошибка, что переменной ent в файле test1.py не существует. При попытке передать переменную ent из файла test.py в файл test1.py в качестве аргумента то он сразу запускает функцию.


Ответы (3 шт):

Автор решения: Максю Гузеевгений

Всё просто! Похоже ты создаешь функцию в новом файле. Зачем? Ты можешь оставить функцию в основном файле и использовать её во втором благодаря import.

→ Ссылка
Автор решения: Roman-Stop RU aggression in UA

Чтоб можно было передать параметр, но при этом не вызывать функцию можно сделать связывание параметра:

# test.py
from functools import partial

but = Button(text='YES', command=partial(Func, ent))


# test1.py

def Func(ent):
    text = ent.get()
    print(text)

Конструкция partial(Func, ent) создает новую функцию, которая уже не содержит параметров, а при вызове запустит Func(ent), т.е. приблизительно такую:

def tempFunc():
    return Func(ent)
→ Ссылка
Автор решения: zymer 44

Может поздновато, но может кто то столкнулся с такой же проблемой. покажу на своем примере. у меня есть

папка_1
  папка_2
    папка_с_файлом_1
      файл_с_кодом
    папка_с_файлом_2
      файл_с_классом

файл_с_классом

from tkinter import *
class Window(Tk):
    def __init__(self):
        super().__init__()

файл_с_кодом

from папка_1.папка_2.папка_с_файлом_2.файл_с_классом import Window
handle = Window()

handle.title('Daw')
handle.geometry('1280x720')

handle.mainloop()

Как видно на примере, нужно написать полный путь через . То есть написать

from папка_2.папка_с_файлом_2.файл_с_классом import Window

не достаточно! Нужно написать полный путь от проекта:

from папка_1.папка_2.папка_с_файлом_2.файл_с_классом import Window
→ Ссылка