gpt4 book ai didi

python - 在 Python 中的类之间共享全局变量

转载 作者:太空狗 更新时间:2023-10-29 22:22:42 27 4
gpt4 key购买 nike

我在面向对象编程方面对 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)?

最佳答案

是的,它可以工作。这是修改后的代码:

x = []

class A:
def func_1(self):
#populate the x variable
global x
x.append(1)
class B:
def func_2(self):
global x
print x

a = A()
a.func_1()
b = B()
b.func_2()

它可以正确打印列表x。如果可能,您应该尽量避免使用全局变量。您可以使用许多其他方式更安全、更高效地在类之间传递变量。

PS:注意函数中的参数。

关于python - 在 Python 中的类之间共享全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20181830/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com