问题描述
Python 我对面向对象编程还是相当陌生的。我正在尝试使用tkinter包实现以下代码。但是,我正在努力从超类(FirstFrame)到子类(ThirdFrame)访问self.coord变量。
import tkinter as tk
class MainFrame(tk.Tk):
def __init__(self,*args,**kwargs):
tk.Tk.__init__(self,**kwargs)
container = tk.Frame(self)
container.grid(row=0,column=0,sticky="nsew")
container.grid_rowconfigure(0,weight=1)
container.grid_columnconfigure(0,weight=1)
self.frames = {}
frame = FirstFrame(container,self)
self.frames[FirstFrame] = frame
frame.grid(row=0,sticky="nsew")
frame.grid_propagate(0)
frame1 = ThirdFrame(container,self)
self.frames[ThirdFrame] = frame1
frame1.grid(row=1,sticky="w")
self.show_frames(FirstFrame)
self.show_frames(ThirdFrame)
def show_frames(self,cont):
frame = self.frames[cont]
frame.tkraise()
class FirstFrame(tk.Frame):
def __init__(self,parent,controller):
tk.Frame.__init__(self,height='200',width='200',bg='green')
self.coord = [1,3,5,7,9]
lbl = tk.Label(text="You did It!")
lbl.grid(row=0,sticky='n')
class ThirdFrame(FirstFrame):
def __init__(self,height='500',width='100',bg='yellow')
print("Success",self.coord)
app = MainFrame()
app.mainloop()
在执行程序时发生以下属性错误。
C:\Users\lenovo\venv\Scripts\python.exe C:/Users/lenovo/IdeaProjects/Trial/tryyyrr.py
Traceback (most recent call last):
File "C:/Users/lenovo/IdeaProjects/Trial/tryyyrr.py",line 48,in <module>
app = MainFrame()
File "C:/Users/lenovo/IdeaProjects/Trial/tryyyrr.py",line 22,in __init__
frame1 = ThirdFrame(container,self)
File "C:/Users/lenovo/IdeaProjects/Trial/tryyyrr.py",line 45,in __init__
print("Success",self.coord)
AttributeError: 'ThirdFrame' object has no attribute 'coord'
一些指导确实会有所帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)