【发布时间】:2017-01-19 09:50:17
【问题描述】:
有没有办法使用 for 循环来自动化函数?例如 如果我写..
def foo (a number):
return (a number)
for i in range(10):
print(foo('1{}').format(str(i))
推出AttributeError: 'NoneType' object has no attribute 'format'
【问题讨论】:
-
for i in range(10): print(foo(10 + i)),或使用for i in range(10, 20): print(foo(i))。整数不是字符串,只是使用算术来产生参数。 -
所以,不,
str.format()仅适用于字符串,因为它是一个字符串方法。你这里没有字符串。此外,您发布的代码会抛出SyntaxError异常,而不是您声称得到的错误。 -
所以该代码只是一个示例,我实际使用的是尝试连接字符串,我的错误应该以它为例。虽然数字也一样,但会改变它。
-
您认为首先为什么需要代码生成?您可以生成一个包含表达式的字符串,然后在上面使用
eval(),但在 99.9% 的情况下,有更好的方法来做你想做的事。您要在这里解决的实际问题是什么?
标签: function python-3.x loops