Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自身变量未存储在python中?_Python_Variables_Global_Self - Fatal编程技术网

自身变量未存储在python中?

自身变量未存储在python中?,python,variables,global,self,Python,Variables,Global,Self,我定期在程序中声明自变量: def __init__(self): self.x = dict() 后来在我的代码(调用的第一个函数)中,我给self.x赋值。 然而,稍后当我尝试在后面的函数中实际使用self.x时,self.x打印为{}。即使我确信我分配的是正确的,并且我的数据是可靠的 这里有点像python noob,有什么我可能遗漏的吗?我是否应该将这些变量声明为全局变量,因为我的程序编写方式可能正在失去作用域 谢谢如果没有看到代码的其余部分,很难回答您的问题(当您提供更多信息

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

def __init__(self):
    self.x = dict()
后来在我的代码(调用的第一个函数)中,我给self.x赋值。 然而,稍后当我尝试在后面的函数中实际使用self.x时,self.x打印为{}。即使我确信我分配的是正确的,并且我的数据是可靠的

这里有点像python noob,有什么我可能遗漏的吗?我是否应该将这些变量声明为全局变量,因为我的程序编写方式可能正在失去作用域


谢谢

如果没有看到代码的其余部分,很难回答您的问题(当您提供更多信息时,我将编辑此帖子),但也许我可以让您了解可能存在的问题。您的函数应该类似于下面的类中所示的函数:

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'}


dict()与{}是一回事。有什么问题吗?
dict()
相当于
{}
dict()
实例化一个空字典,空字典的字面形式是
{}
。一切似乎都按照您的预期运行。您能否显示“为
self.x
”分配值”的功能?发布完整的最小代码,并显示预期和实际结果