Python 和 JavaScript 中 Yield 的区别

2025-02-09T16:44:47+08:00 | 1分钟阅读 | 更新于 2025-02-09T16:44:47+08:00

Macro Zhao

Python 和 JavaScript 中 Yield 的区别

@TOC

推荐超级课程:

Pythonyield

在 Python 中,yield主要用于生成器函数。生成器函数是一个返回迭代器的特殊函数,yield可用于每次生成一个值。

def generator_example():
    yield 1
    yield 2
    yield 3

gen = generator_example()
print(next(gen))  # 出力: 1
print(next(gen))  # 出力: 2
print(next(gen))  # 出力: 3

JavaScriptyield

在 JavaScript 中,yield用于function*使用以下定义的生成器函数中yield暂停生成器的执行并向调用者返回一个值。

function* generatorExample() {
    yield 1;
    yield 2;
    yield 3;
}

const gen = generatorExample();
console.log(gen.next().value); // 出力: 1
console.log(gen.next().value); // 出力: 2
console.log(gen.next().value); // 出力: 3

Pythonyield from

在Python中yield from,它用于从其他生成器或可迭代对象中获取值。

def sub_generator():
    yield 1
    yield 2
    yield 3

def main_generator():
    yield from sub_generator()
    yield 4

gen = main_generator()
print(next(gen))  # 出力: 1
print(next(gen))  # 出力: 2
print(next(gen))  # 出力: 3
print(next(gen))  # 出力: 4

JavaScriptyield*

JavaScriptyield from没有与 Python 相同的功能,但yield*它有一个类似的关键字:这可以用于从其他生成器函数中获取值。

function* subGenerator() {
    yield 1;
    yield 2;
    yield 3;
}

function* mainGenerator() {
    yield* subGenerator();
    yield 4;
}

const gen = mainGenerator();
console.log(gen.next().value); // 出力: 1
console.log(gen.next().value); // 出力: 2
console.log(gen.next().value); // 出力: 3
console.log(gen.next().value); // 出力: 4

© 2011 - 2025 Macro Zhao的分享站

关于我

如遇到加载502错误,请尝试刷新😄

Hi,欢迎访问 Macro Zhao 的博客。Macro Zhao(或 Macro)是我在互联网上经常使用的名字。

我是一个热衷于技术探索和分享的IT工程师,在这里我会记录分享一些关于技术、工作和生活上的事情。

我的CSDN博客:
https://macro-zhao.blog.csdn.net/

欢迎你通过评论或者邮件与我交流。
Mail Me

推荐好玩(You'll Like)
  • AI 动·画
    • 这是一款有趣·免费的能让您画的画中的角色动起来的AI工具。
    • 支持几十种动作生成。
我的项目(My Projects)
  • 爱学习网

  • 小乙日语App

    • 这是一个帮助日语学习者学习日语的App。
      (当然初衷也是为了自用😄)
    • 界面干净,简洁,漂亮!
    • 其中包含 N1 + N2 的全部单词和语法。
    • 不需注册,更不需要订阅!完全免费!
  • 小乙日文阅读器

    • 词汇不够?照样能读日语名著!
    • 越读积累越多,积跬步致千里!
    • 哪里不会点哪里!妈妈再也不担心我读不了原版读物了!
赞助我(Sponsor Me)

如果你喜欢我的作品或者发现它们对你有所帮助,可以考虑给我买一杯咖啡 ☕️。这将激励我在未来创作和分享更多的项目和技术。🦾

👉 请我喝一杯咖啡

If you like my works or find them helpful, please consider buying me a cup of coffee ☕️. It inspires me to create and share more projects in the future. 🦾

👉 Buy me a coffee