使用发送方法时,为什么产量会跳过

发布于 2025-01-21 22:44:42 字数 959 浏览 3 评论 0原文

guests = ["Tim,22",
"Tonya,45",
"Mary,12",
"Ann,32",
"Beth,20",
"Sam,5",
"Manny,76",
"Kenton,15",
"Kenny,27",
"Dixie,46",
"Mallory,32",
"Julian,4",
"Edward,71",
"Rose,65"]

def read_guestlist(file_name):
  while True:
    for person in guests:
      name, age = person.split(",")

      new_guest = yield name
      if new_guest != None: 
        new_name, new_age = new_guest.split(",")
        name = new_name
        yield "This never gets printed"
        yield new_name

guestlist = read_guestlist(guests)

counter = 0
for name in guestlist:
  if counter == 5:
    guestlist.send("Jane,35") 
    counter += 1 
  elif counter == 10:
    guestlist.send("Pontus,35")
    counter += 1
  print(name)
  counter += 1
  if counter > 17:
    break

我已经玩过此代码了一段时间,每次我都使用发送一个收益> yart被跳过。在这种情况下,这是yart屈服“这永远不会打印”。我的问题是:为什么每次我使用发送方法时,为什么特定的收益都会跳过?

guests = ["Tim,22",
"Tonya,45",
"Mary,12",
"Ann,32",
"Beth,20",
"Sam,5",
"Manny,76",
"Kenton,15",
"Kenny,27",
"Dixie,46",
"Mallory,32",
"Julian,4",
"Edward,71",
"Rose,65"]

def read_guestlist(file_name):
  while True:
    for person in guests:
      name, age = person.split(",")

      new_guest = yield name
      if new_guest != None: 
        new_name, new_age = new_guest.split(",")
        name = new_name
        yield "This never gets printed"
        yield new_name

guestlist = read_guestlist(guests)

counter = 0
for name in guestlist:
  if counter == 5:
    guestlist.send("Jane,35") 
    counter += 1 
  elif counter == 10:
    guestlist.send("Pontus,35")
    counter += 1
  print(name)
  counter += 1
  if counter > 17:
    break

I have been playing around with this code for a while, and each time I have sent a value using send one yield gets skipped. In this case it is the yield: yield "This never gets printed". My question is: why does that particular yield get skipped each time I use send method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文