返回带断开循环的字符串结果[英] Return a string result with out breaking loop

问题描述

您好,我想知道是否有 XML RPC 发送字符串
从服务器到客户端的文本没有调用返回因此中断
我的循环

例如

def somefunc():
对于行动,结果中的文件:
full_filename = os.path.join(path_to_watch, files)
theact = ACTIONS.get(action, "未知")
out2 = str(full_filename) + ""+ str(theact)
返回2

return 语句将返回一个打破我循环的结果.我的目标是
让它继续循环和更新客户端

有什么想法吗?

干杯

安德鲁

提前致谢

Pyhon 2.5.2

Windows XP

推荐答案

Andrew 写道:
嗨,我想知道是否有 XML RPC 发送字符串
从服务器到客户端的文本没有调用返回因此中断
我的循环

例如

def somefunc():
对于行动,结果中的文件:
full_filename = os.path.join(path_to_watch, files)
theact = ACTIONS.get(action, "未知")
out2 = str(full_filename) + ""+ str(theact)
返回2

return 语句将返回一个打破我循环的结果.我的目标是
让它继续循环和更新客户端

有任何想法吗?
是的,使用yield而不是return.它将函数变成了一个生成器.

Christian


嗨,我整天都在尝试 yield 和其他不同的东西:D

但我总是使用 yield

得到相同的结果故障:<故障1:"<type ''exceptions.TypeError''>:cannot marshal <type
''发电机''
对象"
我不确定我到底做错了什么,因为这是我第一次
用过的产量

关于如何修复此错误的任何建议

干杯

安德鲁
克里斯蒂安·海姆斯写道:
安德鲁写道:
>您好,我想知道 XML RPC 是否有办法将一串
文本从服务器发送到客户端,而无需调用 return 从而
打破我的循环

for示例

def somefunc():
用于操作,结果中的文件:
full_filename = os.path.join(path_to_watch, files)
theact = ACTIONS.get(动作,"未知")
out2 = str(full_filename) + ""+ str(theact)
return out2

return 语句将返回一个打破我循环的结果.我的目标是
让它继续循环并更新客户端

有什么想法吗?

是的,使用yield而不是return.它将函数变成了一个生成器.

克里斯蒂安

def somefunc():
对于行动,结果中的文件:
full_filename = os.path.join(path_to_watch, files)
theact = ACTIONS.get(action, "未知")
产量 str(full_filename) + ""+ str(theact)

?
下面是一个例子,如果这不起作用,使用 yield 来展示如何
使用产量:
def yi(x):
而 x 0:
产量 str(x)
x -= 1

>>易(4)
<0x01FA3C88 处的生成器对象>
>>a=yi(4)
a.next()
''4''
>>a.next()
''3''
>>a.next()
''2''
>>a.next()
''1''
>>a.next()
Traceback(最近一次通话最后一次):
文件"<pyshell#151>",第 1 行,在 <module>
a.next()
停止迭代
>>>

本文地址:https://www.itbaoku.cn/post/1050769.html