在python上使用瓶式API会导致将参数传递到函数中时出错

2024-09-30 14:18:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python编写一个API,但是我遇到了一个问题。在

当我运行以下代码时:

from bottle import route, run
apiArray = ["key0","key1","key2"]
@route('/<userApi>/')
def hello(userApi,apiArray):
    for item in apiArray:
        if item == userApi:
            return {True}
    return {False}
run(host='localhost', port=8080, debug=True)

当我运行该代码时,我得到以下错误:

^{pr2}$

有人知道我做错了什么吗?为什么我会犯这个错误?在


Tags: run代码fromimportapitruebottlereturn
1条回答
网友
1楼 · 发布于 2024-09-30 14:18:54

如果已经声明了一个变量,为什么要传入apiArray??函数接受两个变量,但该路径只接收一个变量。去掉这个,它应该可以工作了。它是在上下文中的,所以不需要它,但是如果需要将它作为参数传入,则应该将它添加到路由中。否则,它将永远不会被设置为不管。在

编辑:快速上下文教程

在线上有无数的资源可以用来理解Python中的变量上下文,所以我将用示例给出一个简明的解释。在

让我们从Python中上下文的解释开始。上下文(或范围)定义为变量或函数可用的“空间”。如果一个变量是在给定的上下文中定义的,那么任何其他变量或函数都可以在以后调用它。例如:

foo = 3
print foo

这将打印3。然而,这将失败

^{pr2}$

原因是尽管foo在正确的上下文中,但它还没有被定义。在

关于你的问题,比如“如果变量是全局的,那么有一个函数有什么意义”,Python上下文的第二部分是嵌套函数继承前面的上下文。所以如果我这么做了:

foo = 3
def print_foo():
    print foo

print_foo()

{{cd2}在这个函数中是相同的。你会在哪里用这个?在

这扩展到了更多的上下文嵌套。您可以在函数中使用函数,但在每个级别变量都可以用于该级别及以下级别。在

我希望这有助于您更好地理解上下文,但是我过于简化并排除了许多重要的细节,因此请花时间阅读更多的Python上下文教程。在

相关问题 更多 >