Python生成器输出是整数而不是数字

rit*_*att 0 python generator

我刚刚在一周前了解了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)

到底是怎么回事?难道我做错了什么?

Ash*_*ary 6

它应该是yield int(d)代替yield int(m):

def getDigits(m):
    for d in str(m):
        yield int(d)
Run Code Online (Sandbox Code Playgroud)

  • FFFFFFUUUUUUUUU谢谢! (2认同)