gpt4 book ai didi

python - 如何将参数传递给 Python 中的回调函数?

转载 作者:可可西里 更新时间:2023-11-01 16:35:37 27 4
gpt4 key购买 nike

我想让我的代码异步进行 HTTP 调用,因为整个程序在调用时停止。

我看了一下grequests,想不通,asyncio也一样

这是代码的当前同步版本:

myvar1 = class_object()

response = requests.get(myvar1.url)

if response.status_code == 200:
myvar1.accept()

我想改为执行以下操作:

def myfunction:

request.get(myvar1.url,callbackfunction(response,myvar1))

return None

def callbackfunction(response,myvar1):

if response.status_code == 200:
myvar1.accept()

我可以成功将回调函数传递给请求,问题是如何将参数传递给该回调。

基本上,目标是执行回调函数传递参数的方法。

最佳答案

让我们创建一个偏函数:


def myfunction(var, func):

request.get(var.url, callback = func)


def callbackfunction(response, var):

if response.status_code == 200:
var.accept()

# Now make a partial function to wrap callbackfunction
def wrapper(var):
def callback(response):
callbackfunction(response, var)
return callback

myvar1 = class_object()

myfunction(myvar1, wrapper(myvar1))

所以,requests.get()最终会调用func(response)实际上是callback(response)这叫callbackfunction(response, myvar1)

关于python - 如何将参数传递给 Python 中的回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56175707/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com