Python Kivy:绑定两个方法,一个接一个地调用
我有一个C类,有两个方法,a和b,我希望其中一个(b)总是在另一个(a)之后调用Python Kivy:绑定两个方法,一个接一个地调用,python,kivy,Python,Kivy,我有一个C类,有两个方法,a和b,我希望其中一个(b)总是在另一个(a)之后调用 怎么做 从a给b打电话怎么样 def a(self) : #some code self.b() 我不太记得为什么它不能通过绑定工作,但我认为它与使用不同的对象有关,例如绑定到未执行的旧方法或类似的东西 这就是super()。您可以看到,super()不仅用于调用继承自的类的\uuu init\uuu(),它还有其他用途 我刚刚用()替换了: 不,因为C的每个实例都将覆盖a。我就是这么用的。b的存
怎么做 从a给b打电话怎么样
def a(self) :
#some code
self.b()
我不太记得为什么它不能通过绑定工作,但我认为它与使用不同的对象有关,例如绑定到未执行的旧方法或类似的东西 这就是
super()。您可以看到,super()
不仅用于调用继承自的类的\uuu init\uuu()
,它还有其他用途
我刚刚用()
替换了:
不,因为C的每个实例都将覆盖a。我就是这么用的。b的存在必须隐藏在幕后。@MatiasMorant你需要更具体地回答你的问题。使用kivy,你可以做(如果self是一个按钮):self.bind(on_release=另一个函数)
,这意味着在on_release的函数之后会调用另一个函数,这是一个事件。我想要的是相同的行为,但不是像在发布时那样使用预定义的方法,而是使用我自己的方法是的,我已经读过了。但是如果我像绑定其他两个kivy事件一样绑定我的两个方法,那么它就不起作用了。我尝试用register\u event\u type()将方法a注册为事件,但也不起作用
def a(self) :
#some code
self.b()
from kivy.base import runTouchApp
from kivy.uix.button import Button
class MyBase(Button):
def overridden(self, *args):
self.stable()
def stable(self, *args):
print('stable')
class MyButton(MyBase):
def __init__(self, **kwargs):
super(MyButton, self).__init__(**kwargs)
self.bind(on_release=self.overridden)
def overridden(self, *args):
# run before overriden stuff
super(MyButton, self).overridden()
print('new overridden')
# run after overridden stuff
super(MyButton, self).overridden()
runTouchApp(MyButton())