【发布时间】:2013-12-09 12:22:21
【问题描述】:
我在面向对象编程方面对 python 的思考相对较新,而且对我来说进展相对较慢。
是否可以在具有多个函数的类之间传递全局变量?我已经在这里和其他来源广泛阅读了它们,但我仍然有点困惑。
我的最终目标是全局定义一个变量,在一个类的函数中为其赋值,然后在另一个类的函数中使用它。那可能吗?我正在为 ArcMap 构建一个 pythonaddin,每个按钮都需要一个类。我想要一个按钮来为变量赋值,然后在脚本的另一个类中使用该变量。
(在我受到抨击之前,我知道首先使用全局变量是一种相对不好的形式,我正在努力学习)
例如,作为一个高度简化的例子:
x = []
class A():
def func_1(self):
#populate the x variable
global x
x = 1
class B():
def func_2(self):
global x
#do stuff with x
这是可以接受的吗(即使不是pythonic)?
【问题讨论】:
-
尽可能避免使用全局变量。
-
如果你要修改有问题的变量,你只需要使用 global 关键字。
标签: python class oop python-2.7