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