【问题标题】:Passing arguments to URL object将参数传递给 URL 对象
【发布时间】:2019-03-27 22:06:04
【问题描述】:

使用 kivy 中的 URL 对象 https://kivy.org/doc/stable/api-kivy.network.urlrequest.html,如果我想更改 on_success 函数以接收另一个参数,我将如何将值传递给它?

def generate_images(sensor_id):
    req = UrlRequest(URL, on_success=url_success)

然后在 on_success 有这样的东西

def url_success(req, result, sensor_id):

【问题讨论】:

    标签: python kivy kivy-language


    【解决方案1】:

    一种解决方案是使用functools.partial():

    from functools import partial
    
    # ...
    
    def generate_images(sensor_id):
        req = UrlRequest(URL, on_success=partial(url_success, sensor_id))
    
    # ...
    
    def url_success(sensor_id, req, result):
        print(sensor_id, req, result)
    

    另一种解决方案是使用lambda 函数:

    def generate_images(sensor_id):
        req = UrlRequest(URL, on_success= lambda req, result, sensor_id=sensor_id : url_success(req, result, sensor_id))
    

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多