python--如何在函数中使用全局变量

2024-01-18 07:59:12 浏览数 (3)

问:

如何在函数内部创建或使用全局变量?

如何在其他函数内部使用一个在某个函数中定义的全局变量?

答:

你可以在其他函数中使用全局变量,只要在每个给它赋值的函数中声明它为 global 变量:

代码语言:python代码运行次数:0复制
globvar = 0

def set_globvar_to_one():
    global globvar    # 需要修改 globvar 的全局副本
    globvar = 1

def print_globvar():
    print(globvar)    # 无需声明全局变量即可读取 globvar 的值

set_globvar_to_one()
print_globvar()       # 打印 1

由于不清楚函数中的语句 globvar = 1 是在创建局部变量还是在改变全局变量,Python 默认创建局部变量,并让你明确地使用 global 关键字选择另一种行为。

官方文档中写道:

global语句在整个当前代码块中都有效。这意味着列出的标识符应被解释为全局变量。如果没有global关键字,将无法对全局变量进行赋值,尽管自由变量可以在未声明为全局的情况下引用全局变量。

在global语句中列出的名称,在该global语句之前的同一文本代码块中不应被使用。

在global语句中列出的名称,不能定义为形式参数,也不能定义为with语句或except子句中的目标,也不能在for目标列表、类定义、函数定义、import语句或变量注释中定义。


参考文档:

  • stackoverflow question 423379
  • https://docs.python.org/3/reference/simple_stmts.html#grammar-token-python-grammar-global_stmt

相关阅读:

  • Python中如何通过引用传递变量
  • 如何将python列表拆分为大小相等的块
  • python可变对象和不可变对象

0 人点赞