Python 如何在两个类之间进行通信
我对从一个类到另一个类访问方法感到困惑。我想从类B的方法内部在类A上的tkinter文本小部件上进行编写。我该怎么做Python 如何在两个类之间进行通信,python,Python,我对从一个类到另一个类访问方法感到困惑。我想从类B的方法内部在类A上的tkinter文本小部件上进行编写。我该怎么做 from abc import xyz from Tkinter import * class A(Frame): def write(self,text): self.display.insert(END,text+'\n') def __init__(self,parent): Frame.__init__(self,pare
from abc import xyz
from Tkinter import *
class A(Frame):
def write(self,text):
self.display.insert(END,text+'\n')
def __init__(self,parent):
Frame.__init__(self,parent)
self.parent=parent
self.initUI()
def initUI(self):
self.grid(row=0,sticky=N+E+S+W)
self.columnconfigure(0,weight=1)
self.rowconfigure(0,weight=1)
self.display = Text(self)
self.display.grid(row=0,sticky=N+E+S+W)
self.yscroll = Scrollbar(self,command=self.display.yview)
self.yscroll.grid(row=0,column=1,sticky=N+S)
self.display.config(yscrollcommand=self.yscroll.set)
class B(xyz):
def dataReceived(self):
data = 'hello world'
get = A()
get.write(data + '\n')
def main():
root = Tk()
ex = App(root)
root.mainloop()
这给了我一个错误
get = A()
exceptions.TypeError: __init__() takes exactly 2 arguments (1 given)
请建议我如何在类B中继承类A的属性。感谢您花时间阅读此内容。您的问题不是两个类之间的通信,您的问题是您忘记给
A
类一个参数。注意parent
参数:
def __init__(self,parent):
Frame.__init__(self,parent)
self.parent=parent
self.initUI()
第一次创建类时,必须设置单位(文本和父对象)。所以它应该是get=A(data+“/n”,“some str”
您可以在不提供任何参数的情况下运行get.function
另外,我不确定您是否知道,但如果您不希望传递父级,您正在向数据中添加两行新行,而不仅仅是一行,在类a中更改为:
当我使用parent参数时,我得到,
exceptions.NameError:未定义全局名称“parent”
error。这是因为父变量不存在。如果不想传递父变量,请使用def\uu init\uuuu(self,parent=None):
得到它。非常感谢。。!!
def __init__(self,parent=None):