如何使用我作为参数给出的函数?

def error_block(inner_func):
    def dec_f(client,*args,**kwargs):
        nonlocal inner_func
        try:
            return client.inner_func(*args,**kwargs)
        except:
            print("연결에 실패했습니다.")
            for socket in client_list:
                if not_con(socket):
                    remove(socket)
            raise CError

    return dec_f

在代码中,client参数是模块socket的套接字,而我作为另一个参数给出的inner_func函数是socket.socket.send,因此我想它将作为 client.send(),但日志显示

*AttributeError: 'socket' object has no attribute 'inner_func'*

因此,inner_func不会被解释为我发送给函数的参数,而是必须在套接字类中的函数。 那么,如何使用inner_func作为已发送的函数?

sjh102495 回答:如何使用我作为参数给出的函数?

client.send(...)本质上是socket.socket.send(client,...)的缩写。所以你应该这样做:

return inner_func(client,*args,**kwargs)
本文链接:https://www.f2er.com/3089831.html

大家都在问