Python 如何在两个类之间进行通信

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

我对从一个类到另一个类访问方法感到困惑。我想从类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,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):