类在python中作为模块调用时如何继承tk.frames

类在python中作为模块调用时如何继承tk.frames,python,tkinter,module,class-instance-variables,Python,Tkinter,Module,Class Instance Variables,我是一个tk新手,在导入类和让它们继承框架时遇到了麻烦。如果我将所有代码堆叠在一个文件中,它就会工作。类似于(我在Github上发现了这个,抱歉没有归属) 我得到了错误 File "modules\clock\Clock.py", line 8, in <module> class Clock(Frame): NameError: name 'Frame' is not defined 文件“modules\clock\clock.py”,第8行,在 班级时钟(帧):

我是一个
tk
新手,在导入类和让它们继承框架时遇到了麻烦。如果我将所有代码堆叠在一个文件中,它就会工作。类似于(我在Github上发现了这个,抱歉没有归属)

我得到了错误

  File "modules\clock\Clock.py", line 8, in <module>
    class Clock(Frame):

NameError: name 'Frame' is not defined
文件“modules\clock\clock.py”,第8行,在
班级时钟(帧):
NameError:未定义名称“Frame”

如何设置代码,以便将代码分解为模块并传递tk.Frame

你把tkinter import Frame的
放在Clock.py文件的顶部了吗?@j_4321当我这样做的时候,我得到了一个
self.Clock=Clock(self.topFrame)TypeError:“module”对象不可调用
在我实例化时钟的行上。这是因为你的模块和你的类都被命名为
Clock
。给定导入语句,您要做的是
self.clock=clock.clock(self.topFrame)
(或者您可以从modules.clock.clock import clock更改导入语句
from modules.clock import Clock

class FullscreenWindow:
        def __init__(self):
            self.tk = Tk()
            self.tk.configure(background='black')
            self.topFrame = Frame(self.tk, background = 'black')
            self.bottomFrame = Frame(self.tk, background = 'black')
            self.topFrame.pack(side = TOP, fill=BOTH, expand = YES)
            self.bottomFrame.pack(side = BOTTOM, fill=BOTH, expand = YES)
            self.state = False
            self.tk.bind("<Return>", self.toggle_fullscreen)
            self.tk.bind("<Escape>", self.end_fullscreen)
            # clock
            self.clock = Clock(self.topFrame)

w = FullscreenWindow()
w.tk.mainloop()
  File "modules\clock\Clock.py", line 8, in <module>
    class Clock(Frame):

NameError: name 'Frame' is not defined