" SyntaxWarning:name' our_mongo'在全球声明之前使用"

时间:2016-01-18 01:38:15

标签: python-3.x

我的代码一直给我上面的语法警告。我的代码包括但不限于:

[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
}

我已经尝试了一切,但这仍然是一个问题。为什么这是语法错误?解决这个问题的最佳方法是什么?

2 个答案:

答案 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