自变量没有存储在python中?

时间:2012-10-07 17:22:54

标签: python variables global self

我定期在程序中声明自变量:

def __init__(self):
    self.x = dict()

稍后在我的代码(第一个被调用的函数)中,我为self.x分配了一个值。 但是后来当我尝试在以后的函数中实际使用self.x时,self.x打印出{}。即使我确定我正确分配它并且我的数据是合理的。

这里有一个蟒蛇菜鸟,有什么我可能会失踪的吗?我是否应该将这些变量声明为全局变量,因为我可能会以编写程序的方式丢失范围?

由于

1 个答案:

答案 0 :(得分:0)

如果没有看到你的其他代码就很难回答你的问题(当你提供更多信息时我会编辑这篇文章),但也许我可以让你深入了解可能出现的问题。您的函数应该类似于下面类中显示的函数:

class Foo:
    def __init__(self):
        self.x = dict()

    def add(self):
        self.x[1] = 'a'  # add something to our dict

    def redefine(self):
        self.x = {2:'b', 3:'c'}  # reassign our dict

所以要看到一切都井然有序:

foo = Foo()
print foo.x
foo.add()
print foo.x
foo.redefine()
print foo.x

输出:

  

{}
  {1:'a'}
  {2:'b',3:'c'}