回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>所以我在尝试学习<a href="https://developer.leapmotion.com" rel="nofollow">leap-motion SDK</a>并在4-5年没有接触过python之后重新学习它,我在python2.7中遇到了一个生成器问题</p>
<p>基本上,我有一个单词列表,每次跳跃动作拿起一个新的“圆圈”手势时,我想打印列表中的下一个单词。我看到的是每次<code>on_frame</code>回调函数只打印列表中的第一个单词。我相信发生的是python运行时在事件之间忘记了生成器的状态。有没有办法在手势事件之间保持生成器状态?在</p>
<pre><code>if not frame.hands.is_empty:
for gesture in frame.gestures():
if gesture.type == Leap.Gesture.TYPE_CIRCLE:
circle = CircleGesture(gesture)
# Determine clock direction using the angle between the pointable and the circle normal
action = None
if circle.pointable.direction.angle_to(circle.normal) <= Leap.PI/4:
action = GestureActions.clockwiseCircleGesture()
else:
action = GestureActions.counterClockwiseCircleGesture()
print action.next()
def clockwiseCircleGesture():
words = ["You", "spin", "me", "right", "round", "baby", "right", "round", "like", "a", "record", "baby", "Right", "round", "round", "round", "You", "spin", "me", "right", "round", "baby", "Right", "round", "like", "a",
"record", "baby", "Right", "round", "round", "round"]
for word in words:
yield word
</code></pre>
<p>任何对这方面的洞察都会很好。谢谢</p>