yr.FunctionProxy.invoke#
- yr.FunctionProxy.invoke(*args, **kwargs)#
执行被装饰的远程函数。
此方法触发被装饰函数在远程工作节点上的执行。函数将使用提供的参数执行, 并返回一个 ObjectRef,可用于检索结果。
- 参数:
*args – 传递给被装饰函数的变长参数。
**kwargs – 传递给被装饰函数的关键字参数。
- 返回:
ObjectRef 或 List[ObjectRef]:结果对象的引用。
对于 return_nums=1 的函数,返回单个 ObjectRef。
对于 return_nums>1 的函数,返回 ObjectRef 列表。
对于生成器函数,返回 ObjectRefGenerator。
对于 return_nums=0 的函数,返回 None。
- 抛出:
TypeError – 如果提供的参数与函数签名不匹配。
RuntimeError – 如果函数执行失败或运行时未初始化。
- 样例:
>>> import yr >>> >>> yr.init() >>> >>> @yr.invoke ... def add(a, b): ... return a + b >>> >>> result_ref = add.invoke(1, 2) >>> result = yr.get(result_ref) >>> print(result) # 输出: 3 >>> >>> # 对于多返回值函数 >>> @yr.invoke(return_nums=2) ... def divmod_func(a, b): ... return divmod(a, b) >>> >>> quotient_ref, remainder_ref = divmod_func.invoke(10, 3) >>> print(yr.get(quotient_ref)) # 输出: 3 >>> print(yr.get(remainder_ref)) # 输出: 1 >>> >>> yr.finalize()