Передача аргументов в объект URL - PullRequest
2 голосов
/ 28 марта 2019

Используя объект URL в kivy, 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):

1 Ответ

0 голосов
/ 28 марта 2019

Одним из решений является использование 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))
...