超级和 Tkinter
Super and Tkinter
初学者在 Tkinter 中对 Super 的帮助。
我想了解如何在 tkinter 应用程序中使用 super() 。我需要引用父 class 的属性。从代码中,按下带有 super().init 的按钮被调用,调用另一个父级并且不根据需要引用信息。与 super().init 未调用,即注释掉,它抛出一个属性错误。谁能告诉我如何在不重写(和覆盖)原始信息的情况下调用超级属性。
import tkinter as tk
class Parent():
def __init__(self,master):
self.sym = 'tree'
self.cl = 3
self.enter = tk.Entry(master)
self.enter.pack()
self.button = tk.Button(master,text='text', command= lambda: Child(master))
self.button.pack()
class Child(Parent):
def __init__(self,master):
# super().__init__(master)
print(self.enter.get(), self.cl)
root = tk.Tk()
a = Parent(root)
root.mainloop()
你似乎在做的不是 subclassing 的目的。您正在尝试使用 class 的 new 实例来获取父 class 的 different 实例的属性=].
执行子classing 的正确方法是而不是 创建Parent
的实例。相反,创建 Child
的实例。这样,Child
的实例将可以访问父 class 定义中的所有内容。
示例:
import tkinter as tk
class Parent():
def __init__(self,master):
self.sym = 'tree'
self.cl = 3
self.enter = tk.Entry(master)
self.enter.pack()
self.button = tk.Button(master,text='text', command= self.print_value)
self.button.pack()
class Child(Parent):
def __init__(self,master):
super().__init__(master)
print(self.enter.get(), self.cl)
def print_value(self):
print(self.enter.get())
root = tk.Tk()
a = Child(root)
root.mainloop()
初学者在 Tkinter 中对 Super 的帮助。
我想了解如何在 tkinter 应用程序中使用 super() 。我需要引用父 class 的属性。从代码中,按下带有 super().init 的按钮被调用,调用另一个父级并且不根据需要引用信息。与 super().init 未调用,即注释掉,它抛出一个属性错误。谁能告诉我如何在不重写(和覆盖)原始信息的情况下调用超级属性。
import tkinter as tk
class Parent():
def __init__(self,master):
self.sym = 'tree'
self.cl = 3
self.enter = tk.Entry(master)
self.enter.pack()
self.button = tk.Button(master,text='text', command= lambda: Child(master))
self.button.pack()
class Child(Parent):
def __init__(self,master):
# super().__init__(master)
print(self.enter.get(), self.cl)
root = tk.Tk()
a = Parent(root)
root.mainloop()
你似乎在做的不是 subclassing 的目的。您正在尝试使用 class 的 new 实例来获取父 class 的 different 实例的属性=].
执行子classing 的正确方法是而不是 创建Parent
的实例。相反,创建 Child
的实例。这样,Child
的实例将可以访问父 class 定义中的所有内容。
示例:
import tkinter as tk
class Parent():
def __init__(self,master):
self.sym = 'tree'
self.cl = 3
self.enter = tk.Entry(master)
self.enter.pack()
self.button = tk.Button(master,text='text', command= self.print_value)
self.button.pack()
class Child(Parent):
def __init__(self,master):
super().__init__(master)
print(self.enter.get(), self.cl)
def print_value(self):
print(self.enter.get())
root = tk.Tk()
a = Child(root)
root.mainloop()