我正在为一个新项目尝试Python,并且在那个状态下,需要一些全局变量。为了测试而不改变硬编码值,我试图创建一个重新分配变量的函数:
foo = None;
def setFoo(bar):
global foo = bar;
setFoo(1);
然而,这得到:
File ".\test.py", line 4
global foo = bar;
^
SyntaxError: invalid syntax
我已经阅读了与我的问题高度相关的two questions,但显然错过了一些Python的问题。
有人能开导我吗?
答案 0 :(得分:3)
global
和赋值都是陈述。你不能在同一条线上混合它们。
答案 1 :(得分:3)
foo = None;
def setFoo(bar):
global foo
foo = bar
setFoo(1);
答案 2 :(得分:1)
正如saurabh baid指出的那样,正确的语法是
foo = None
def set_foo(bar):
global foo
foo = bar
set_foo(1)
使用global
关键字允许函数访问全局范围(即模块的范围)
另请注意我如何将变量重命名为snake_case
并删除了分号。在Python中不需要分号,函数通常是snake_case
:)
答案 3 :(得分:1)
global
和foo = bar
在不同的行
foo = None
def setFoo(bar):
global foo
foo = bar
setFoo(1)
不要使用分号:
Python: What Does a Semi Colon Do?
答案 4 :(得分:1)
Python并不要求您显式声明变量并自动假设您指定的变量具有函数作用域,除非您另有说明。 global
关键字是提供给它的方式。当您将其声明为全局时,您无法分配值。正确的方法将是
foo = None
def setFoo(bar):
global foo
foo = bar
setFoo(1)