首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在定义函数时不能使用之前赋值的变量?

为什么在定义函数时不能使用之前赋值的变量?
EN

Stack Overflow用户
提问于 2018-11-06 14:30:29
回答 1查看 53关注 0票数 0

下面是我尝试用来运行函数的python代码。

代码语言:javascript
复制
def list_benefits():
    return "More organized code", "More readable code", "Easier code 
    `reuse", "Allowing programmers to share and connect code together"`


def build_sentence(benefit):
    return "%s is a benefit of functions!" %benefit


def name_the_benefits_of_functions():
    list_of_benefits = list_benefits()
    for benefi in list_of_benefits:
        print(build_sentence(benefi))


name_the_benefits_of_functions()

我不明白为什么我们需要变量'list_of_benefits‘,为什么我们不能在最后一个函数中直接使用'list_benefits’。上面的代码运行良好,但是如果我从任何地方删除'list_of_benefits‘,我会得到下面的错误-

TypeError:“function”对象不可迭代

EN

回答 1

Stack Overflow用户

发布于 2018-11-06 14:49:29

您可以在循环中直接使用list_benefits()。查看以下代码:

代码语言:javascript
复制
def list_benefits():
    return "More organized code", "More readable code", "Easier code","reuse", "Allowing programmers to share and connect code together"

def build_sentence(benefit):
    return "%s is a benefit of functions!" %benefit

def name_the_benefits_of_functions():
    for benefi in list_benefits():
        print(build_sentence(benefi))

name_the_benefits_of_functions()

它对我来说工作得很好。输出:

代码语言:javascript
复制
More organized code is a benefit of functions!
More readable code is a benefit of functions!
Easier code is a benefit of functions!
reuse is a benefit of functions!
Allowing programmers to share and connect code together is a benefit of functions!

如果你想这样做,请不要这样做(我相信你很可能在尝试这样做时遇到了错误):

代码语言:javascript
复制
for benefi in list_benefits:

这对你不起作用,因为在这种情况下,list_benifits变成了一个变量,而不是一个函数。所以它会产生一个错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53166764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档