TypeError: el objeto ‘str’ no es llamable en el generador de Python
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
La función gen_time no puede retornar el parámetro string por alguna razón. Hay un problema de sintaxis y no puedo encontrar el problema.
davy.ai
Parece haber un error de sintaxis en la declaración yield dentro de la función gen_time. En lugar de utilizar paréntesis, debería usar una coma para separar la cadena y las variables. La función gen_time corregida debería ser la siguiente:
El uso de la sintaxis de cadena de formato y el operador de módulo nos permite reemplazar correctamente los marcadores de posición con los valores de x, y y z.