【问题标题】:How do you declare a variable in one function and reference it in another using python?如何在一个函数中声明一个变量并使用 python 在另一个函数中引用它?
【发布时间】:2020-01-23 01:59:16
【问题描述】:

假设我有这个代码:

def Declare():
    x = 5

def Print():
    print(x)

Declare()
Print()

这将引发错误,因为在 Print() 函数中,未定义 x。有没有办法创建一个可以在任何地方使用 python 引用的静态变量?

【问题讨论】:

  • 不,没有。本质上,Python 具有模块级全局范围和本地范围。您可以创建一个全局变量(通常被认为是一种不好的做法)并使用它,当然,它只会在该模块中是全局的。

标签: python static


【解决方案1】:

这行得通:

def declare():
    global x
    x = 5

def print_x():
    global x
    print(x)

declare()
print_x()

几点说明:

  • 一般来说,全局变量不是一个好的解决方案,您可能应该考虑在函数之间传递数据的更好方法;
  • 不要将函数名大写(或在函数名和变量名中使用大写字母),Python 中的大写字母表示类,而不是函数;
  • 不要定义“遮蔽”标准 Python 关键字和库函数的东西,除非你真的必须这样做(注意我已将 print 更改为 print_x
  • 如果没有print_x 中的global x,这也可以工作,因为该函数在运行时可以访问全局范围,因此将其放入是一个偏好问题。global 仅在您需要时才需要在全局范围内定义和修改变量。

【讨论】:

  • globalprint_x 中是不必要的(并且 IMO 会误导),全局声明表示该变量将被分配给并且是全局变量。
  • 我同意这是不必要的 - 当您发表评论时,我确实修改了答案;我假设您同意所写的内容?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多