我的代码一直给我上面的语法警告。我的代码包括但不限于:
[HttpPost("id")]
public void Post([FromRoute]id, [FromBody]firstName)
{
// Change user's first name
}
[HttpPost("id")]
public void Post([FromRoute]id, [FromBody]city)
{
// Change user's city
}
我已经尝试了一切,但这仍然是一个问题。为什么这是语法错误?解决这个问题的最佳方法是什么?
答案 0 :(得分:4)
它不是SyntaxError
而是SyntaxWarning
。 Python警告您在函数中 our_mongo
之前使用global our_mongo
变量。
从语法上讲,global
语句在函数的哪一行上实际上并不重要;但惯用的方法是在第一次访问之前使用global
。
另一个问题是,你有多个global our_mongo
语句,单个会做,而且你甚至根本不需要global
- 只适用于{{3}的情况};即。
def foo():
global bar # this line is required for the next line
# to change the global variable instead of
# the local variable
bar = 42
因此,只需从您的global
中删除所有on_message
语句,它们就是不必要的。
答案 1 :(得分:2)
在函数中声明名称global
的唯一原因是它将绑定在全局范围而不是本地范围;当访问名称时,无论如何都始终搜索全局范围。由于您的代码永远不会在任何函数中绑定our_mongo
,因此没有理由首先声明它global
。