我正在用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}$有人知道我做错了什么吗?为什么我会犯这个错误?在
如果已经声明了一个变量,为什么要传入
apiArray
??函数接受两个变量,但该路径只接收一个变量。去掉这个,它应该可以工作了。它是在上下文中的,所以不需要它,但是如果需要将它作为参数传入,则应该将它添加到路由中。否则,它将永远不会被设置为不管。在编辑:快速上下文教程
在线上有无数的资源可以用来理解Python中的变量上下文,所以我将用示例给出一个简明的解释。在
让我们从Python中上下文的解释开始。上下文(或范围)定义为变量或函数可用的“空间”。如果一个变量是在给定的上下文中定义的,那么任何其他变量或函数都可以在以后调用它。例如:
这将打印
^{pr2}$3
。然而,这将失败原因是尽管
foo
在正确的上下文中,但它还没有被定义。在关于你的问题,比如“如果变量是全局的,那么有一个函数有什么意义”,Python上下文的第二部分是嵌套函数继承前面的上下文。所以如果我这么做了:
{{cd2}在这个函数中是相同的。你会在哪里用这个?在
这扩展到了更多的上下文嵌套。您可以在函数中使用函数,但在每个级别变量都可以用于该级别及以下级别。在
我希望这有助于您更好地理解上下文,但是我过于简化并排除了许多重要的细节,因此请花时间阅读更多的Python上下文教程。在
相关问题 更多 >
编程相关推荐