请教各位一个问题,关于生成器的。(语言-python)

请问下图中,shengchengqi()和a难道不应该是等价的吗?为什么使用第15行报错,而使用第16行不报错呢?

img


def shengchenggi():
    print("a")
    res = yield 1
    print(res)
    print("b")
    yield 2
    print("c")
    yield 3
    print("d")
    yield 4
    print("e")

# 调用一次生成器函数,创建一个生成器对象
a = shengchenggi()

# 使用 next() 函数调用生成器函数
print(next(a))

# 使用 send() 方法调用生成器函数
print(a.send(666))

这样就可以在使用第 15 行的调用方式时不报错了。