0

在 python 脚本末尾调用 IPython 时,我遇到了范围变量的问题。我在脚本本身中调用的所有函数都可以修改变量,这些变量随后将被其他函数使用。如果我在 ipython 中调用相同的函数,脚本化的函数可以访问已更改的变量,但调用 ipython 时存在的变量不会更改。因此我的问题是:如何将全局变量传播到 ipython?(我当然可以做类似 A=globals()['A'] 的事情,但那很难看)

4

1 回答 1

0

@staticmethod您可以使用返回该类的单例实例的静态方法(装饰器:)创建一个类。该对象可以包含任意数量的成员作为全局成员。

class Globals:
    __master = None
    somevar = 1
    othervar = 2

    @staticmethod
    def get_master():
        if Globals.__master is None:
            Globals.__master = Globals()

        return Globals.__master

g1 = Globals.get_master()
g2 = Globals.get_master()
g1.somevar += 1

print g1.somevar
print g2.somevar

印刷:

2
2
于 2010-06-30T02:09:15.377 回答