如何从函数获取返回值?Ursina按钮点击场景技术求解
函数返回值获取及Ursina按钮点击回调返回值处理
一、普通函数获取返回值
直接调用函数并将结果赋值给变量即可,示例:
def my_func(): return "测试返回值" # 获取返回值 result = my_func() print(result) # 输出:测试返回值
二、Ursina框架中获取按钮点击绑定函数的返回值
你原代码的问题在于:Ursina的Button组件不会自动捕获on_click回调的返回值并存储到按钮属性中,且手动监听input的左键点击逻辑会响应所有左键操作,并非仅按钮点击。以下是两种可行方案:
方案1:使用全局变量存储返回值
通过全局变量承接回调函数的返回值,在需要的地方直接访问该变量:
from ursina import * app = Ursina() click_result = None # 全局变量存储返回值 def on_click(): global click_result click_result = "按钮点击成功" # 设置返回值 # 创建按钮并绑定回调 b = Button(on_click=on_click, text="点击获取返回值") # 用于显示返回值的文本组件 status_text = Text(text="等待点击", position=(0, 0.4)) def update(): # 实时更新显示当前返回值 status_text.text = f"当前返回值: {click_result}" app.run()
方案2:使用类实例变量封装(更推荐)
用类的实例变量存储返回值,避免全局变量的副作用:
from ursina import * app = Ursina() class ButtonClickHandler: def __init__(self): self.click_result = None def handle_click(self): self.click_result = "通过类实例获取的返回值" # 创建处理实例 handler = ButtonClickHandler() # 绑定类方法作为按钮回调 b = Button(on_click=handler.handle_click, text="点击测试") status_text = Text(text="等待点击", position=(0, 0.4)) def update(): status_text.text = f"当前返回值: {handler.click_result}" app.run()
内容的提问来源于stack exchange,提问作者The_Herowither
相关产品推荐
相关产品推荐

