从对象属性调用父函数

ruarlubt  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(342)

我正在kivy中构建gui。应用程序的一部分需要打开一个包含按钮的弹出框,按钮的回调函数调用该弹出框中的函数。我在使回拨正常工作时遇到了一些问题。
作为家长,我最好通过以下课程:

class A():
    def foo(self):
        print(foo)

class B(A):
    def foo(self):
        super(B, self).foo()
myB = B()
myB.foo()

但是我需要将kivy定义作为对象定义的一部分传入(请参见下面的代码)。
欢迎任何建议,如果您需要更多详细信息,请告诉我!
我的代码:

class Application(App):
    pass

class A(TabbedPanel):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)
        self.B = B()

class B(BoxLayout):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)
        self.C = C()

    def test_function(self):
        print("Test Function Worked!")

class C(Popup):
    def __init__(self,**kwargs):
        super().__init__(**kwargs)

    def on_button_release(self):
        super(C, self).test_function()

if name == "__main__"
    Application().run()

我的想法是 on_button_release 在c类中,将运行 test_function b班

jv4diomz

jv4diomz1#

如果您只引用类b的属性,那么可以使用 @classmethod 在函数上方。然后,您将能够通过类名调用该函数。如。 B.test_function() .
除此之外,你可以包括 class B 进入 Application 类作为属性或在启动时的bultin方法中初始化。

相关问题