我刚刚在一周前了解了Python中的生成器.根据我的理解,'yield'返回一个生成器对象而不是整个数组.
这是我为获取整数的数字而编写的代码:
def getDigits(m):
for d in str(m):
yield int(m)
Run Code Online (Sandbox Code Playgroud)
这应该返回作为生成器对象传递给它的整数的数字.但当我这样做时:
for i in getDigits(123):
print i
Run Code Online (Sandbox Code Playgroud)
我得到的输出为:
123
123
123
Run Code Online (Sandbox Code Playgroud)
代替:
1
2
3
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?难道我做错了什么?
它应该是yield int(d)代替yield int(m):
def getDigits(m):
for d in str(m):
yield int(d)
Run Code Online (Sandbox Code Playgroud)