Python 可以从kv文件中的另一个类调用函数吗?
我有一个用类创建的弹出窗口。在这个弹出窗口中,我有两个按钮。根据您按下的按钮,它必须调用主类中的函数 如果在kv文件中调用同一类中带有“on_release:”的函数,则编写“root….()”。如果我想从另一个类调用其中一个函数,我应该写什么Python 可以从kv文件中的另一个类调用函数吗?,python,kivy,Python,Kivy,我有一个用类创建的弹出窗口。在这个弹出窗口中,我有两个按钮。根据您按下的按钮,它必须调用主类中的函数 如果在kv文件中调用同一类中带有“on_release:”的函数,则编写“root….()”。如果我想从另一个类调用其中一个函数,我应该写什么 谢谢在您的kv中,您可以参考应用程序、自我或根目录。看见因此,如果您在其中任何一个类中引用了OtherClass,则可以在kv中使用该引用。例如,如果在应用程序类中包含一行: self.otherClassRef = OtherClass() 然后在您
谢谢在您的
kv
中,您可以参考应用程序
、自我
或根目录
。看见因此,如果您在其中任何一个类中引用了OtherClass
,则可以在kv
中使用该引用。例如,如果在应用程序类中包含一行:
self.otherClassRef = OtherClass()
然后在您的kv
中,您可以使用
on_release: app.otherClassRef.someMethod()
无论如何,您必须具有对OtherClass
实例的引用才能访问实例方法
您可以使用访问静态方法
on_release: OtherClass.someStaticMethod()
或者使用
on_release: OtherClass().someMethod()
但是您可能需要在kv
中导入OtherClass
。差不多
#:import OtherClass OtherClassFileName.OtherClass
请注意,如果您执行OtherClass().someMethod()
操作,则您正在创建OtherClass
的新实例,而不是使用任何当前现有实例。在kv
中,您可以引用app
、self
或root
。看见因此,如果您在其中任何一个类中引用了OtherClass
,则可以在kv
中使用该引用。例如,如果在应用程序类中包含一行:
self.otherClassRef = OtherClass()
然后在您的kv
中,您可以使用
on_release: app.otherClassRef.someMethod()
无论如何,您必须具有对OtherClass
实例的引用才能访问实例方法
您可以使用访问静态方法
on_release: OtherClass.someStaticMethod()
或者使用
on_release: OtherClass().someMethod()
但是您可能需要在kv
中导入OtherClass
。差不多
#:import OtherClass OtherClassFileName.OtherClass
请注意,如果您执行OtherClass().someMethod()
操作,则您正在创建OtherClass
的新实例,而不是使用任何当前现有实例。请解释。如果您弹出一个窗口并要关闭它,请编写“on_release:root.disease()”。问题是在关闭它之前,我需要在数组中设置一个值。所以我需要调用另一个类中的函数。我只想知道从另一个类(比如“Main”)调用函数的命令是什么。我以为它是“Main.function()”,但它不起作用。那么OtherClass.function()呢?它说:未定义中的名称“OtherClass”。当然,我使用的是真实的类名,而不是“OtherClass”@Laurent提供了一个请解释的窗口。如果您弹出一个窗口并想要关闭它,您可以写“on_release:root.disclease()”。问题是在关闭它之前,我需要在数组中设置一个值。所以我需要调用另一个类中的函数。我只想知道从另一个类(比如“Main”)调用函数的命令是什么。我以为它是“Main.function()”,但它不起作用。那么OtherClass.function()呢?它说:未定义中的名称“OtherClass”。当然,我用的是真实的类名,而不是“OtherClass”@Laurent非常感谢John。正是我需要的!非常感谢你,约翰。正是我需要的!