【问题标题】:TypeError: 'str' object is not callable in generator pythonTypeError:'str'对象在生成器python中不可调用
【发布时间】:2022-01-06 15:56:29
【问题描述】:
def gen_secs():
    x = 0
    while x < 60:
        yield x
        x += 1

def gen_minutes():
    x = 0
    while x < 60:
        yield x
        x += 1

def gen_hours():
    x = 0
    while x < 24:
        yield x
        x += 1

def gen_time():
    for x in gen_hours():
        for y in gen_minutes():
            for z in gen_secs():
                yield ("%d:%d:%d" (x, y, z))

for gt in gen_time():
    print(gt)
    if gt == "01:23:45":
        break

函数 gen_time 无法返回某些字符串参数 原因。存在语法问题,我找不到问题。

【问题讨论】:

  • 表达式:"%d:%d:%d" (x, y, z) 尝试使用参数(x, y, z) 调用字符串 "%d:%d:%d"。但是str 对象是不可调用的。请在未来尝试创建minimal reproducible example。这段代码大部分是完全不相关的。
  • yield ("%d:%d:%d" (x, y, z)) 你忘记了格式字符串和参数之间的%
  • 感谢约翰·戈登

标签: python function generator yield


【解决方案1】:

您忘记了格式 str 语法,请尝试更改以下内容:

yield ("%d:%d:%d" (x, y, z))

到:

yield ("%d:%d:%d" % (x, y, z))

This 文章很有帮助

【讨论】:

    猜你喜欢
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多